Creating Contact Person via Function Module
Dear ABAP Gurus,
try to add customer contact person via SD_CUSTOMER_MAINTAIN_ALL.
KNVK - Kundenstamm Ansprechpartner
MOVE '0000010010' to itab-kunnr.
MOVE 'Firstname' TO itab-namev.
MOVE 'Lastname' TO itab-name1.
MOVE 'City' TO itab-ort01.
MOVE 'DE' TO itab-parla.
MOVE '' to itab-telf1.
MOVE 'U' to itab-kz.
APPEND itab to my_knvk.
BAPI aufrufen
CALL FUNCTION 'SD_CUSTOMER_MAINTAIN_ALL'
EXPORTING
PI_POSTFLAG = 'X'
TABLES
T_XKNVK = my_knvk.
Runs without error but person record not created. Any ideas ?
Thanks in advance for your help.
Thomas
Check for the sy-subrc value in Debug mode .
Check do you need to commit COMMIT statement to update the table.
Also look at this
Changing Customers using SD_CUSTOMER_MAINTAIN_ALL
Regards
Vivek
<b> please reward points for all the useful answers </b>
Similar Messages
-
Create Contact Person via BAPI / CMD_EI_API (TCode VAP1)
Hi everybody,
I have to develop a function module, which has to be called from an external application (java). This function module should, create contact persons for customers (like Transaction VAP1 does).
I did not find any function module or bapi for this, but I found class CMD_EI_API, which seems to possibly help me. Unfortunately, there is no documentation for this class.
Could anyone help me getting the contact person's addresses into the system? Just hustle me into the right direction and I will walk by myself
Thank you very much
Ralf
Edit: The contact persons addresses have to be maintained for existing customers.
Edited by: Ralf Wenzel on Feb 21, 2012 12:19 PMI have this working. I wrote a wrapper BAPI. If inserting a new contact, you need to get a new partner number otherwise it won't work. There is extra code in this function module that you can remove. I left it as I used the logic for other customer update BAPIs.
FUNCTION Z_CUSTOMER_CONTACT.
*"*"Local Interface:
*" IMPORTING
*" VALUE(CUST) LIKE ZCUSTOMER STRUCTURE ZCUSTOMER
*" VALUE(TESTFLAG) LIKE WDL_FLAG-XFLAG DEFAULT ' '
*" VALUE(FBAPI) TYPE CHAR01 OPTIONAL
*" VALUE(CONTACT) LIKE ZCONTACT STRUCTURE ZCONTACT
*" EXPORTING
*" VALUE(CUSTOMERNO) LIKE BAPIKNA103-CUSTOMER
*" VALUE(RETURN) LIKE BAPIRETURN1 STRUCTURE BAPIRETURN1
*" EXCEPTIONS
*" CLIENT_ERROR
*" KNA1_INCOMPLETE
*" KNB1_INCOMPLETE
*" KNB5_INCOMPLETE
*" KNVV_INCOMPLETE
*" KUNNR_NOT_UNIQUE
*" SALES_AREA_NOT_UNIQUE
*" SALES_AREA_NOT_VALID
*" INSERT_UPDATE_CONFLICT
*" NUMBER_ASSIGNMENT_ERROR
*" NUMBER_NOT_IN_RANGE
*" NUMBER_RANGE_NOT_EXTERN
*" NUMBER_RANGE_NOT_INTERN
*" ACCOUNT_GROUP_NOT_VALID
*" PARNR_INVALID
*" BANK_ADDRESS_INVALID
*" TAX_DATA_NOT_VALID
*" NO_AUTHORITY
*" COMPANY_CODE_NOT_UNIQUE
*" DUNNING_DATA_NOT_VALID
*" KNB1_REFERENCE_INVALID
*" CAM_ERROR
data: wa_header type cmds_ei_header,
wa_central_data type cmds_ei_vmd_central_data,
wa_central_datax type cmds_ei_vmd_central_data_xflag,
wa_address type bapiad1vl,
wa_addressx type bapiad1vlx,
wa_contact_addr type bapiad3vl,
wa_contact_addrx type BAPIAD3VLX,
wa_tax_ind_st type cmds_ei_tax_ind,
wa_tax_ind type cmds_ei_cmd_tax_ind,
wa_bankdetail_st type cvis_ei_cvi_bankdetail,
wa_bankdetail type cvis_ei_bankdetail,
wa_company_code_st type cmds_ei_company,
wa_company_code type cmds_ei_cmd_company,
wa_functions_st type cmds_ei_functions,
wa_functions type cmds_ei_cmd_functions,
wa_tcontact type CVIS_EI_PHONE,
wa_phone_st type CVIS_EI_PHONE_STR,
wa_phone type CVIS_EI_CVI_PHONE,
wa_fcontact type CVIS_EI_FAX,
wa_fax_st type CVIS_EI_FAX_STR,
wa_fax type CVIS_EI_CVI_FAX,
wa_econtact type CVIS_EI_SMTP,
wa_smtp_st type CVIS_EI_SMTP_STR,
wa_smtp type CVIS_EI_CVI_SMTP,
wa_sales_data_st type cmds_ei_sales,
wa_sales_data type cmds_ei_cmd_sales,
wa_customer type cmds_ei_extern,
wa_cust_created type cmds_ei_extern,
is_customers type cmds_ei_main,
es_customers type cmds_ei_main,
wa_correct type cmds_ei_main,
wa_defective type cmds_ei_main,
wa_mes_correct type cvis_message,
wa_mes_error type cvis_message,
it_contacts type cmds_ei_contacts_t,
wa_contacts type CMDS_EI_CONTACTS,
messages type BAPIRET2_T.
FIELD-SYMBOLS: <bapiret2> type BAPIRET2.
DATA: STATUS TYPE CHAR20,
PARNR LIKE KNVK-PARNR.
constants: FILLCHAR VALUE '/',
gc_objtype_customer TYPE mds_ctrl_object VALUE 'CUSTOMER',
gc_insert TYPE c VALUE 'I',
gc_delete TYPE c VALUE 'D',
gc_current_state TYPE c VALUE 'C',
gc_update TYPE c VALUE 'U',
gc_true TYPE c VALUE 'X',
gc_false TYPE c VALUE ' '.
include fbgenmac.
* generate data record
fbgenmac 'Z_CUSTOMER_CONTACT'.
* Clear memory variables - needed if run in Test mode
* Initialization
CALL METHOD cmd_ei_api=>initialize.
wa_customer-header-object_instance-kunnr = cust-kunnr.
wa_customer-header-object_task = gc_update.
append wa_customer to is_customers-customers.
call method CMD_EI_API_EXTRACT=>get_data
EXPORTING
is_master_data = is_customers
IMPORTING
es_master_data = es_customers
es_error = wa_mes_error.
IF wa_mes_error-is_error is initial.
STATUS = 'OK'.
LOOP at es_customers-customers into wa_cust_created.
wa_company_code = wa_cust_created-company_data.
IF STATUS = 'OK' and wa_mes_error-is_error is INITIAL.
* is_customers = es_customers.
free: wa_customer, wa_company_code_st,
wa_company_code, wa_address, wa_sales_data_st,
wa_contacts, wa_contact_addr,
wa_sales_data, wa_tax_ind_st, wa_functions,
wa_functions_st, wa_correct, wa_mes_correct,
wa_defective, wa_mes_error, wa_cust_created,
wa_tcontact, wa_phone_st, wa_phone,
wa_fcontact, wa_fax_st, wa_fax, wa_econtact,
wa_smtp_st, wa_smtp.
FREE: is_customers.
IF CONTACT-FIRSTNAME IS NOT INITIAL.
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
nr_range_nr = 'AP'
object = 'PARTNER'
QUANTITY = '1'
SUBOBJECT = ' '
* TOYEAR = '0000'
** IGNORE_BUFFER = ' '
IMPORTING
NUMBER = PARNR
* QUANTITY =
* RETURNCODE =
EXCEPTIONS
INTERVAL_NOT_FOUND = 1
NUMBER_RANGE_NOT_INTERN = 2
OBJECT_NOT_FOUND = 3
QUANTITY_IS_0 = 4
QUANTITY_IS_NOT_1 = 5
INTERVAL_OVERFLOW = 6
BUFFER_OVERFLOW = 7
OTHERS = 8.
IF SY-SUBRC = 0.
* Add partner type 20
wa_contacts-task = gc_insert.
wa_contacts-data_key-parnr = PARNR.
wa_contacts-data-pafkt = '20'.
wa_contacts-datax-pafkt = 'X'.
* wa_contacts-address_type_1 = ''.
* wa_contacts-address_type_2 = ''.
* wa_contact_addr-fullname = CUST-NAME.
wa_contact_addr-firstname = CONTACT-FIRSTNAME.
wa_contact_addrx-firstname = 'X'.
wa_contact_addr-lastname = CONTACT-LASTNAME.
wa_contact_addrx-lastname = 'X'.
* Assign address data directly
wa_contacts-address_type_3-task = gc_insert.
wa_contacts-address_type_3-postal-data = wa_contact_addr.
wa_contacts-address_type_3-postal-datax = wa_contact_addrx.
* e-mail address
wa_econtact-task = gc_insert.
wa_econtact-data-std_no = 'X'.
wa_econtact-data-e_mail = CONTACT-E_MAIL.
* wa_econtact-datax-std_no = 'X'.
* wa_econtact-datax-e_mail = 'X'.
wa_smtp-current_state = ' '.
wa_smtp_st-contact = wa_econtact.
append wa_smtp_st to wa_smtp-smtp.
wa_contacts-address_type_3-communication-smtp = wa_smtp.
* wa_contacts-contact_texts = ''.
append wa_contacts to it_contacts.
ENDIF.
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
nr_range_nr = 'AP'
object = 'PARTNER'
QUANTITY = '1'
SUBOBJECT = ' '
* TOYEAR = '0000'
** IGNORE_BUFFER = ' '
IMPORTING
NUMBER = PARNR
* QUANTITY =
* RETURNCODE =
EXCEPTIONS
INTERVAL_NOT_FOUND = 1
NUMBER_RANGE_NOT_INTERN = 2
OBJECT_NOT_FOUND = 3
QUANTITY_IS_0 = 4
QUANTITY_IS_NOT_1 = 5
INTERVAL_OVERFLOW = 6
BUFFER_OVERFLOW = 7
OTHERS = 8.
IF SY-SUBRC = 0.
* Add partner type 30
wa_contacts-data_key-parnr = parnr.
wa_contacts-data-pafkt = '30'.
append wa_contacts to it_contacts.
ENDIF.
* Assign contacts to customer structure
wa_customer-central_data-contact-contacts = it_contacts.
* Set object_task to modify
wa_customer-header-object_instance-kunnr = cust-kunnr.
wa_customer-header-object_task = gc_update.
append wa_customer to is_customers-customers.
IF FBAPI = 'X'.
* MAINTAIN_BAPI seems to now work. Fills in table addr_appl_to_int used in function module
* ADDR_MEMORY_SAVE line 631. It should be blank.
call method cmd_ei_api=>maintain_bapi
EXPORTING
iv_test_run = TESTFLAG
iv_collect_messages = 'X'
is_master_data = is_customers
IMPORTING
es_master_data_correct = wa_correct
es_message_correct = wa_mes_correct
es_master_data_defective = wa_defective
es_message_defective = wa_mes_error.
ELSE.
call method cmd_ei_api=>maintain
EXPORTING
iv_test_run = TESTFLAG
is_master_data = is_customers
IMPORTING
es_error = wa_mes_error.
ENDIF.
IF wa_mes_error-is_error is initial.
if testflag <> 'X'.
commit work and wait.
LOOP at wa_correct-customers into wa_cust_created.
CUSTOMERNO = wa_cust_created-header-object_instance-kunnr.
SY-MSGID = 'F2'.
SY-MSGNO = '056'. " Failure
SY-MSGV1 = ''.
SY-MSGV2 = ''.
SY-MSGV3 = ''.
SY-MSGV4 = ''.
CALL FUNCTION 'BALW_BAPIRETURN_GET1'
EXPORTING
TYPE = 'E'
CL = SY-MSGID
NUMBER = SY-MSGNO
PAR1 = SY-MSGV1
PAR2 = SY-MSGV2
PAR3 = SY-MSGV3
PAR4 = SY-MSGV4
* LOG_NO = ' '
* LOG_MSG_NO = ' '
IMPORTING
BAPIRETURN = RETURN.
ENDLOOP.
CALL FUNCTION 'ADDR_MEMORY_CLEAR'
EXPORTING
force = 'X'
EXCEPTIONS
unsaved_data_exist = 1
internal_error = 2
others = 3.
ELSE.
ROLLBACK WORK.
LOOP at wa_correct-customers into wa_cust_created.
CUSTOMERNO = wa_cust_created-header-object_instance-kunnr.
SY-MSGID = 'F2'.
SY-MSGNO = '035'.
SY-MSGV1 = ''.
SY-MSGV2 = ''.
SY-MSGV3 = ''.
SY-MSGV4 = ''.
CALL FUNCTION 'BALW_BAPIRETURN_GET1'
EXPORTING
TYPE = 'E'
CL = SY-MSGID
NUMBER = SY-MSGNO
PAR1 = SY-MSGV1
PAR2 = SY-MSGV2
PAR3 = SY-MSGV3
PAR4 = SY-MSGV4
* LOG_NO = ' '
* LOG_MSG_NO = ' '
IMPORTING
BAPIRETURN = RETURN.
ENDLOOP.
CALL FUNCTION 'ADDR_MEMORY_CLEAR'
EXPORTING
force = 'X'
EXCEPTIONS
unsaved_data_exist = 1
internal_error = 2
others = 3.
ENDIF.
ELSE.
messages = wa_mes_error-messages.
LOOP at wa_mes_error-messages assigning <bapiret2>.
CUSTOMERNO = CUST-KUNNR.
CALL FUNCTION 'BALW_BAPIRETURN_GET1'
EXPORTING
TYPE = <bapiret2>-type
CL = <bapiret2>-id
NUMBER = <bapiret2>-number
PAR1 = <bapiret2>-message_v1
PAR2 = <bapiret2>-message_v2
PAR3 = <bapiret2>-message_v3
PAR4 = <bapiret2>-message_v4
* LOG_NO = ' '
* LOG_MSG_NO = ' '
IMPORTING
BAPIRETURN = RETURN.
ENDLOOP.
ENDIF.
ELSE.
CUSTOMERNO = CUST-KUNNR.
SY-MSGID = 'F2'.
SY-MSGNO = '152'. " Failure
SY-MSGV1 = CUST-KUNNR.
SY-MSGV2 = CUST-BUKRS.
SY-MSGV3 = ''.
SY-MSGV4 = ''.
CALL FUNCTION 'BALW_BAPIRETURN_GET1'
EXPORTING
TYPE = 'E'
CL = SY-MSGID
NUMBER = SY-MSGNO
PAR1 = SY-MSGV1
PAR2 = SY-MSGV2
PAR3 = SY-MSGV3
PAR4 = SY-MSGV4
* LOG_NO = ' '
* LOG_MSG_NO = ' '
IMPORTING
BAPIRETURN = RETURN.
ENDIF.
ENDIF.
ENDLOOP.
ELSE.
CUSTOMERNO = CUST-KUNNR.
SY-MSGID = 'F2'.
SY-MSGNO = '077'. " Failure
SY-MSGV1 = CUST-NAME.
SY-MSGV2 = ''.
SY-MSGV3 = ''.
SY-MSGV4 = ''.
CALL FUNCTION 'BALW_BAPIRETURN_GET1'
EXPORTING
TYPE = 'E'
CL = SY-MSGID
NUMBER = SY-MSGNO
PAR1 = SY-MSGV1
PAR2 = SY-MSGV2
PAR3 = SY-MSGV3
PAR4 = SY-MSGV4
* LOG_NO = ' '
* LOG_MSG_NO = ' '
IMPORTING
BAPIRETURN = RETURN.
ENDIF.
ENDFUNCTION. -
Error while creating Generic Extractor via Function Module
Hello Guys
I have created a Generic Extractor through a Function Module. I took the Standard FM: RSAX_BIW_GET_DATA_SIMPLE, gave it a new name and activated it. I made a few changes in it, like giving my structure name for E_T_DATA and giving the list of tables, from where I need to get the data. Then I created the datasource in RSO2 by giving this function module and the extract structure.
The DS was created properly, but when I check in RSA3 for records, its giving me an error: ---> <b>The extraction program does not support object YCNA_INVY_TRNS</b>
What do i do now? Can someone please tell me, what changes I need to make in the standard FM to suit my requirements??
Thanks.Hi,
Just try to reactivate the structure once again. And when you open the function module, if the problem still persists just try to press Return key several times. The message you are getting is just a warning message.
PS: I am not sure whether this is the correct way, but i personally resolved this by pressing the ENTER key 4 or 5 times. So just give a try.
Regards
Sunil -
Create transfer order via Function Module
Dear SAP guru,
I have the following requirement that the transfer requirements will be created for replenishment into dedicated storage bins from another storage types.
To do this, I use a user exit to calculate what is my replenishment quantity required for all the dedicated bins of this particular material.
Once, the TR is created. TO should be generated next. And, that is the problem that I faced here. The quantity to replenish to each of the dedicated storage bin could be different, depends on the quantity in the storage bin at that time.
For example, I have 3 dedicated bins for one material as follows:
A-01 100 pc
A-02 50 pc
A-03 50 pc
Assume that the maximum quantity per bin is 300pc, and once I run the replenishment program earlier, I will have a TR created with 700 pc.
Now, what I want during the TO creation, is to search the dedicated bin and also determine the required quantity for each of the bin. In this case, my TO will have 3 items, i.e.
A-01 200pc
A-02 250pc
A-03 250pc
Is there any way to do it?
Please advise.
Thanks.
TomHi Tom,
You can use the Transation SMOD find the possible SAP enhancements. All extensions in the the WM-Umfled can select you, if you enter MWMTO* and die F4-help press. You then get a list of extensions which are possible. Hope this helps. -
BAPI to create Contact person in Vendor master
Hi
We need to create Contact Person in Vendor master using BAPI.
We already used BDCs in CREMAS IDOC posting to create contact person. Since we dont get the address number back in IDOC posting, we need BAPI which can create the contact person and return the address number created for that contact person.
Regards
AnandHi,
this is not supported by CREMAS idoc types and there is no plan to get this in the future.
There is no BAPI and no direct function module to maintain a vendor.
The only solution that is coming will be in ECC 2005 EhP 4 or EhP5 and available from class VMD_EI_API with method Maintain.
If you need this functionality from the CREMAS idoctype, the only solution is to request a remote consulting project or an EoD project at SAP under component LO-MD-BP-VM.
BR
Alain -
Error in Extraction with Generic Datasource via Function Module
Dear Gurus,
Iam working for BI-HR module.We are extracting data with generic data source via function module. The client some more extra fields in already existing DS. So we made a copy of that Function module and tried to create new generic DS, we got error while extraction like "Error occured during the extraction process". Can you please help in resolving this issue, your valuable suggestion would be highly appreciated.
Thanks and regards
Arun SHi,
Which structure are you using??
Are you using the same old structure for this function module as well.
Have you enhanced the structure with new required fields.
New extrac fields needs to be added to existing structure if you are using the same or create a new one and make sure that you have all the fields in the structure which you are going to use in the data source.
You need to take care for the append as well and the issue could be in the code as well.
Make sure you have written the proper code and just for the new fields done an append
Thanks
Ajeet -
Create Return Order via Fucntional module
Hi all,
I am trying to create a return order with refernce to invoice via fucntional module SD_SALESDOCUMENT_CREATE
In SALES_HEADER_IN, I am giving REF_DOC - Invoice number, REFDOC_CAT - M
In SALES_HEADER_INX , I am putting X mark for the above fields
I am Passing necessary details with material.I see the return order is created succesfully, but the invoice number is not updated in Accounting tab - Reference fields - Header.
Please anyone help me if the values what I have passed is correct or not to create the return order via Functional module
regard
ManoHi Mano,
Could you please upload screenshot of the field you are referring to
thanks
santosh -
How to create contact person with BAPI_ADDRCONTPART_SAVEREPLICA
Dears,
when using BAPI BAPI_ADDRCONTPART_SAVEREPLICA to create contact person,it exports the PERSON_NUMBER and ADDRESS_NUMBER, but no record found in table KNVK for customer or vendor .
The parameters is as below,
CALL FUNCTION 'BAPI_ADDRCONTPART_SAVEREPLICA'
EXPORTING
obj_type_p = 'BUS1006001'
obj_id_p = <personal number>
obj_type_c = 'KNA1'
obj_id_c = <customer>
obj_id_ext = SPACE
context = '0005'
also no return message and sy-subrc =0.
what maybe the error? and any other method to create contact person ?
Ths .DEAR,
after test by my colleague, after creating contact person by BAPI_ADDRCONTPART_SAVEREPLICA , then he should input the parter and name into BI structure bknvk when he use bi fm to create customer, then the contact person will be associated with the customer.
But i use BI fm 'VENDOR_BDCDATA' to create vendor, there is no such structure to do so. so no contact person associated with the vendor, but the contact person has been created and just not associated with this vendor in table KNVK.
are there any other methods to do such things to associate contact person with my vendor after call BI FM 'VENDOR_BDCDATA' ?
BR. -
Adding a new conditon on head via function modul?
Hi,
is there a way to add a condition to an order via function module? I mean in customizing we have maintained the calc scheme (and everything else) and assign it to the order. What we want is to add the new condition type to the head of the order via function module. The scenario is as follows:
We create an order and have on the header a field for a value. If you type a value in the field and press enter the condition should be created and calculatetd. The result is given in the condition tab of the order on header level.
We try to not do a modifictaion. therefore i am looking for a function module. Is there someone who could help?
thanks and regards,
MingWhy can't this be done by the pricing configuration?
There are also pricing user exits available, which are not modifications and exist for this purpose exactly (i.e. when for some reason configuration alone is not enough). See the list here:
https://www.sdn.sap.com/irj/sdn/wiki?path=/display/erplo/sdUserexits -
Can anybody explain me creating Generic Datasource using Function module?
Hi,
can anybody explain me creating Generic Datasource using Function module?
Thax in advance,
Ravi.Generic Extraction via Function Module
/people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
1. Create s structure with the fields that you need from the 4 tables . Activate.
2. Goto SE 80 Select The Function Group , Copy , Select the Function module
" RSAX_BIW_GET_DATA_SIMPLE " and Give a New name starting With
Y or Z .
3. SE37 ->Your Function module name -> Change , In table tab give your structure
name by deleting the associated type given in " E_T_DATA " .
4. Now select source code and Do the coding . Give Data source name in Coding .
In your case you have to take data from more that 1 table .
5. Activate the Function Group .
6. In RSO2 Create the Data source , Give the Function Module Name , And Save.
7. RSA3 -> Give data source name and Check for the Records .
Creation of custom datasource. (Using function module)
<b>is an example</b>
1.Create a function group .
2. Structure ZTEST123
ZMATNR MATNR CHAR 18 0 Material Number
ZMTART MTART CHAR 4 0 Material type
ZMBRSH MBRSH CHAR 1 0 Industry sector
ZMATKL MATKL CHAR 9 0 Material group
ZBISMT BISMT CHAR 18 0 Old material number
ZMAKTX MAKTX CHAR 40 0 Material description
3. Create function module (i.e. ZTEST .) .
FM - YMARA_DATA_TRNS
FUNCTION YMARA_DATA_TRNS.
""Local Interface:
*" IMPORTING
*" VALUE(I_REQUNR) TYPE SRSC_S_IF_SIMPLE-REQUNR
*" VALUE(I_DSOURCE) TYPE SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL
*" VALUE(I_MAXSIZE) TYPE SRSC_S_IF_SIMPLE-MAXSIZE OPTIONAL
*" VALUE(I_INITFLAG) TYPE SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL
*" VALUE(I_READ_ONLY) TYPE SRSC_S_IF_SIMPLE-READONLY OPTIONAL
*" TABLES
*" I_T_SELECT TYPE SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL
*" I_T_FIELDS TYPE SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL
*" E_T_DATA STRUCTURE ZTEST123 OPTIONAL
*" EXCEPTIONS
*" NO_MORE_DATA
*" ERROR_PASSED_TO_MESS_HANDLER
data : ZTEST123 type ZTEST123 occurs 0 with header line.
Maximum number of lines for DB table
STATICS: S_S_IF TYPE SRSC_S_IF_SIMPLE,
S_COUNTER_DATAPAKID LIKE SY-TABIX.
DATA: begin of t_mara occurs 0,
ZMATNR type MATNR,
ZMTART type MTART,
ZMBRSH type MBRSH,
ZMATKL type MATKL,
ZBISMT type BISMT,
end of t_mara.
DATA: begin of t_makt occurs 0,
ZMATNR type MATNR,
ZMAKTX type MAKTX,
end of t_makt.
Initialization mode (first call by SAPI) or data transfer mode
(following calls) ?
IF I_INITFLAG = SBIWA_C_FLAG_ON.
Check DataSource validity
CASE I_DSOURCE.
WHEN 'ZZMARA_DATA'.
WHEN OTHERS.
IF 1 = 2. MESSAGE E009(R3). ENDIF.
this is a typical log call. Please write every error message like this
LOG_WRITE 'E' "message type
'R3' "message class
'009' "message number
I_DSOURCE "message variable 1
' '. "message variable 2
RAISE ERROR_PASSED_TO_MESS_HANDLER.
ENDCASE.
Fill parameter buffer for data extraction calls
S_S_IF-REQUNR = I_REQUNR.
S_S_IF-DSOURCE = I_DSOURCE.
S_S_IF-MAXSIZE = I_MAXSIZE.
ELSE. "Initialization mode or data extraction ?
Data transfer: First Call OPEN CURSOR + FETCH
Following Calls FETCH only
First data package -> OPEN CURSOR
IF S_COUNTER_DATAPAKID = 0.
Determine number of database records to be read per FETCH statement
from input parameter I_MAXSIZE. If there is a one to one relation
between DataSource table lines and database entries, this is trivial.
In other cases, it may be impossible and some estimated value has to
be determined.
select MATNR
MTART
MBRSH
MATKL
BISMT
from mara up to 10 rows
into table t_mara.
if not t_mara[] is initial.
select MATNR
maktx
from makt
into table t_makt
for all entries in t_mara
where matnr = t_mara-zmatnr.
endif.
loop at t_mara.
read table t_makt with key zmatnr = t_mara-zmatnr.
ZTEST123-zmatnr = t_mara-zmatnr.
ZTEST123-ZMTART = t_mara-ZMTART.
ZTEST123-ZBISMT = t_mara-ZBISMT.
ZTEST123-ZMBRSH = t_mara-ZMBRSH.
ZTEST123-ZMATKL = t_mara-ZMATKL.
ZTEST123-zmaktx = t_makt-zmaktx.
append ZTEST123.
clear ZTEST123.
endloop.
clear E_T_DATA.
refresh E_T_DATA.
E_T_DATA[] = ZTEST123[].
ENDIF.
S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.
ENDIF. "Initialization mode or data extractio
ENDFUNCTION.
3. Create the data source using transaction (RSO2).
4. If structure exists for the table parameter of your function module then ok else create a structure for the table parameter E_T_DATA.
5. Test the datasource in R/3 using transaction RSA3.
6. Transfer the data source to BW System and replicate it in the BW-System. -
Datasource via function module
Hi,
I am building a function that is due to be used by a Datasource (via Function Module).
This function uses table WDRD. It applies to this table a code that needs the use of an internal table for the calculation (for intermediary calculation storage). After which, I want to get the result of this internal table (say T1_DATA), and return it to E_T_DATA, which will be used to fill my datasource. This is where I am stuck.
-> When I try to get the content of my internal table in my cursor (code: OPEN CURSOR WITH HOLD S_CURSOR FOR
select * from T1_DATA
endif.),
I get an error message stating the table is not defined in the ABAP dictionary.
-> When I try to avoid the cursor and put directly the content of my table T1_DATA in table E_T_DATA, I don't get anything in my Datasource.
Any help would be greatly appreciated.
Thanks,
PierreHi,
Which structure are you using??
Are you using the same old structure for this function module as well.
Have you enhanced the structure with new required fields.
New extrac fields needs to be added to existing structure if you are using the same or create a new one and make sure that you have all the fields in the structure which you are going to use in the data source.
You need to take care for the append as well and the issue could be in the code as well.
Make sure you have written the proper code and just for the new fields done an append
Thanks
Ajeet -
Error while creating contact person
Hi While creating contact person in customer master data
I am getting the message Partner XXXXXX is not assigned to a partner function?
What might be the possible reason,
Thanks in advance
Regards
JaiHi jaigss,
Please check the below threads,
Getting a "Business partner not found with partner function type requester"://Re: Partner function not found
Approver Can replaced by Requestor..
Thanks,
Swamy H P -
Error while trying to create a Universe on Function Module in IDT
Hi,
We are using BO 4.1 Support Pack 2. I am trying to create a Universe on Function Module. I created data foundation layer, but when I right click on the table and click on 'Show table values' it doesn't bring any data (and there is data available in that table). When I click on 'Check Integrity' it says 'Missing Primary key'. Please see the screen shot. Please let me know if any has any idea and I am doing something wrong? I really appreciate it.
Thanks,
Charvi.Hi Charvi,
What type of database/application are you trying to connect? Are you getting any error message?
Missing primary key message is just a warning and is not related to the issue.
Cheers
Mohan -
SRM: Create Contact Person Could not create user; contact your system admin
Hi All,
First, I am not sure this question should be posted here, or SRM General. From my point of view, here is more suitable.
Our Problem:
Activity "Create Contact Person With Reference" error with message:
Step to reproduce:
1. Login to SRM JAVA as super administrator
2. Open tab "SRM Administration"
3. Using the current query, search for Business-Partner no: 30000725
4. Press "Create Contact Person with Reference"
5. Fill all required fields, tick "Is contact person" checkbox
6. Put: /SAPSRM/SUPPLIER as Role
7. Save
The following Message appear:
Could not create user; contact your system administrator
SPML Service error: Error reading request status. Display Help
Contact Person 2000000214 Created Successfully for BP 30000725 Display Help
E-mail was sent
The first error is intriguing. The username & password is created successfully in ABAP System (Our UME is in ABAP).
QUESTIONS:
1. What cause this problem? How to trace the error?
2. We want the user have portal role automatically. How to achieve that?
Thank you for any responses and helps.
SRM ABAP Version:
SRM_PLUS 700 0009 SAPKIBK209 SRM_PLUS for mySAP SRM
SRM_SERVER 700 0009 SAPKIBKV09 SRM_SERVER
SAP_ABA 701 0007 SAPKA70107 Cross-Application Component
SAP_BASIS 701 0008 SAPKB70108 SAP Basis Component
PI_BASIS 701 0007 SAPK-70107INPIBASIS Basis Plug-In
SRM JAVA Version:
SRM JAVA: Release 7 SP Level 9.0
BP SRM: Release 7 SP Level 9.0
Edited by: Nur Agus Suryoko on Mar 11, 2011 11:36 AM
Version information addedHi Fernando,
Can you please tell me how you resolved this issue ??
Regards,
Adren -
Save EAN11 field while creating POrder creation through Function module
Hi All,
I want to update EAN11 field in material master while creating Purchase Order through function module. I am using function module BAPI_PO_CREATE1 for creating purchase order. There are no structures in the PO creation FM in which EAN11 field is there. I have also tried using function module MEPO_DOC_ITEM_PROCESS for updating EAN11 field. It is not working. Please suggest some method to do that.
Note: I am receiving EAN11 through an external system by proxy.
Thanks,
ChinmayHi,
Use BAPI_MATERIAL_SAVEDATA to updat ean numbers for materials.
tables INTERNATIONALARTNOS is used to update EAN.
Regards,
Shanmugavel Chandrasekaran
Maybe you are looking for
-
Can't sync Voice Memos iPhone 4s and iMac?
I have tried everything and I still can't get my voice memos onto my Mac? Can anybody help please? I have the latest software updated on both.
-
I am running MAC OS X 10.6.3, iTunes 10.6.3 and iPhoto 7.1.5 When I connect my ipod 5.1.1, only iphoto detects the device but not iTunes. I tried the basic troubleshooting assistant with no luck. Any advice??
-
Adobe Document Services SM59 Error ICM_HTTP_CONNECTION_FAILED
Hi, My so is Windows 64 bits 2003. When execute the transaction SM59 in my backend show a errro ICM_HTTP_CONNECTION_FAILED. In the transaction SMICM the ICM Status is green. Regards Victor.
-
Audio of .mp4 movie files getting distorted by 1 hour mark.
I converted some of my fave movies from DVD to .mp4 file format that my iPod supports. After I did so, I copied several flicks in .mp4 format to my iPod. Each of those movies is at least 2 hours in length. But the problem with iPods playing .mp4 vids
-
I turned my itouch off when charging and in went into indefinite limbo.
The screen is black with the little spinning wheel in the center. I can't turn it off or on. Any suggestions?