Updating custom table using call transaction
How to update a custom table using Call Transaction method. How can we use Table control (Module Pool) for this purpose).
Vignesh,
Create a table maintenance transaction for ur custom tables. Check this link for ref...
http://allaboutsap.blogspot.com/2007/04/table-maintenance-in-sap-step-by-step.html
And create a BDC recording and code a program accordingly...
regards,
karthik
Similar Messages
-
User exit/BADI for updating custom table in MB1B transaction-
Dear All,
When performing a material to material conversion in MB1B transaction for batch managed materials,system is creating a new batch by copying the characteristics of issuing material/batch.The details of the new batch created are updated in standard batch tables(MCH1,MCHA,MCHA).
The requirement is when the new batch is created,the batch details and characteristics has to be stamped in a custom table.
Kindly suggest a user exit/BAIi available for updating the same in the custom table.
Regards,
DeepakDeepak, Exits for MB1B are
MBCF0002 Customer function exit: Segment text in material doc. item
MBCF0005 Material document item for goods receipt/issue slip
MBCF0006 Customer function for WBS element
MBCF0007 Customer function exit: Updating a reservation
MBCF0009 Filling the storage location field
MBCF0010 Customer exit: Create reservation BAPI_RESERVATION_CREATE1
MBCF0011 Read from RESB and RKPF for print list in MB26
MB_CF001 Customer Function Exit in the Case of Updating a Mat. Doc. -
I want to update the Custom table using the data available in ITAB.
Hi,
I want to updaste the Custom Table which is created by me (Ztable) using the data available in itab.(which i got from defferent standard tables)
I want to update the custom table using the itab data How is it possible?
Is any possible by using Modify ?
DPK.example here
modifying datbase table useing internal table
advises before updating this datbase table plz lock that table to avoid incosistency
write the logic for modifying
Modify the database table as per new dunning procedure
MODIFY fkkvkp FROM TABLE lt_fkkvkp .
and finally unlock the table
example
*To lock table for further operations
constants: lc_tabname TYPE rstable-tabname VALUE 'FKKVKP' . "FKKVKP
CALL FUNCTION 'ENQUEUE_E_TABLE'
EXPORTING
tabname = lc_tabname
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
IF sy-subrc EQ 0.
To fetch all the contract accounts for customers of the segment
Households/SME.
PERFORM fetch_contract_accounts using lc_tabname .
ENDIF. " IF sy-subrc EQ 0.
*wrote the logic
Modify the database table as per new dunning procedure from internal table
MODIFY fkkvkp FROM TABLE lt_fkkvkp .
*unlock the tbale
CALL FUNCTION 'DEQUEUE_E_TABLE'
EXPORTING
TABNAME = uc_tabname . -
How to Update crmd_customer_h TABLE Using CRMV_EVENT Through Funtion Module
Hi
How we can update customer_h table using the CRMV_EVENT Where i implemented logic below in the Funtion Module.
data: lt_doc_flow TYPE crmt_doc_flow_wrkt,
lw_cust_h_com TYPE crmt_customer_h_com,
lw_input_field_names TYPE crmt_input_field_names,
lt_input_field_names TYPE crmt_input_field_names_tab,
lt_objects_to_save TYPE crmt_object_guid_tab,
lw_guid TYPE CRMT_OBJECT_GUID.
DATA : lv_process_type TYPE crmt_process_type.
data: wa_doc_flow type CRMT_DOC_FLOW_WRK.
data: wa_customer_h type crmd_customer_h.
* Function module for retriving the Process type.
CALL FUNCTION 'CRM_ORDERADM_H_READ_OW'
EXPORTING
iv_orderadm_h_guid = iv_header_guid
IMPORTING
ev_process_type = lv_process_type
EXCEPTIONS
admin_header_not_found = 1
OTHERS = 2.
if lv_process_type eq 'ZG01'.
CALL FUNCTION 'CRM_DOC_FLOW_READ_OB'
EXPORTING
IV_HEADER_GUID = iv_header_guid
IMPORTING
ET_DOC_FLOW_WRK = lt_doc_flow.
read table lt_doc_flow with key objtype_a = 'BUS2000116' INTO wa_doc_flow. "gc_object_type-service.
if sy-subrc eq 0. "set flag for service order
lw_cust_h_com-ref_guid = wa_doc_flow-objkey_a.
lw_cust_h_com-ZZTRAIL_FLAG = 'X'.
lw_cust_h_com-mode = 'A'.
lw_cust_h_com-ref_handle = '0000000001'.
lw_guid = wa_doc_flow-objkey_a.
INSERT lw_guid INTO TABLE lt_objects_to_save.
endif.
lw_input_field_names-fieldname = 'REF_GUID'.
lw_input_field_names-fieldname = 'ZZTRAIL_FLAG'.
lw_input_field_names-changeable = ' '.
INSERT lw_input_field_names INTO TABLE lt_input_field_names.
Maintain Customer H
CALL FUNCTION 'CRM_CUSTOMER_H_MAINTAIN_OW'
EXPORTING
is_customer_h_com = lw_cust_h_com
CHANGING
ct_input_field_names = lt_input_field_names
EXCEPTIONS
header_change_error = 1
header_create_error = 2
error_occurred = 3.
ENDIF.
*endif.
*Clearing local variables
clear: lv_process_type,
lw_cust_h_com,
lw_input_field_names.
*Free internal tables
free: lt_doc_flow,
lt_input_field_names.Hi Faisal
I think your not clear with what i am saying anyhow i will again explain you my requirement
As per my requirement
1)in the service order search report i need to add a field called "Has trail order with No Follow up" with values "Yes" & "Blank"
For above Field i added using the structure CRMST_QUERY_SRVO_BTIL and through configuration i am able to display the field in webui as per (Attachement Pic 1)
2)When i search with search criteria as "Has trail order with No Follow up" with "Yes"
Then in result list i need to show the service order those having follow up as trail orders(sales order) only.if for next document trail order having any follow up then those service orders dont want to show in result list.
For above requirement i implemented F.M using CRMV_EVENT & I configured for BUS2000115 And BEFORE_SAVE The Order
The FM Will get trigger when i save the service order and for that service order if create any follow up and try to save the trail order then This FM Will trigger and in this i am doing validations.
3)Add one AET Trail Flag field is added under CUSTOMER_H Table.
4)in the FM I am validating for if the trail order having the preceding document as service order then i need to make flag as "X" For that service order in customer_h
if suppose when i delete trail order from the service order then that flag must need to be "unset" from the CUSTOMER_H.
Why bcoz we are doing above process is do show records in result list based on Flag values
these flag checks are validating in the BADI Which we implemented for search logic.
Please refer below Login for my requirement:-
Proposal to have a custom “flag” field (background at table level,
crmd_customer_h) linked to service order which gets flagged whenever at
least one Trial order is created and saved from the Service Order.
The flag value should be cleared when all the trial orders created and
saved as follow up transactions are deleted from the system.
Similarly for Trial Orders will use the same custom “flag” field
which gets activated when at least one follow up is created and saved from Trial Order.
The flag value should be cleared when all the follow up transactions from
the Trial Order are deleted from the system.
When the above search criteria “Has Trial order with no follow up”
“is” “Yes” is applied then the logic derives all the service
orders which satisfy additional search criteria applied in the search and
for these Service orders checks if the custom flag field is checked to
derive all Service orders which have Trial order. The custom flag values
values are derived from crmd_customer_h table in CRM.
4 )Further for all the Trial Orders determined in Step 3
check if the Trial Order has a follow up by checking if the custom flag field
is checked. The custom flag values are derived from crmd_customer_h table in
CRM.
5) If step 4 is not met populate the preceding Service
Orders in the Result list -
Getting Express document 'Update was Terminated' in Call Transaction AS02
Hi All,
I've written BDC for changing the Asset Master using Call Transaction Method. After the Call Transaction it it showing me the Success message that 'The Asset has been Changed'.But it is not reflecting in the Database table.When i navigate back from th e screen I'm getting the Express document as 'Update was terminated'.
Please help me in this regard.
Thanks and Regards.Hi,
have you used commit statement after the call transaction statement, or if there is any enhancement for AS02 transaction remove the commit work statement from the enhancement.
Regards, Qamar -
Not Updating Customized Table when System having Performance Issue
Hi,
This is actually the same topic as "Not Updating Customized Table when System having Performance Issue" which is posted last December by Leonard Tan regarding the user exit EXIT_SAPLMBMB_001.
Recently we changed the program function module z_mm_save_hide_qty to update task. However this causes more data not updated. Hence we put back the old version (without the update task). But now it is not working as it used to be (e.g. version 1 - 10 records not updated, version 2 with update task - 20 records not updated, back to version 1 - 20 records not updated).
I tried debugging the program, however whenever I debugged, there is nothing wrong and the data is updated correctly.
Please advise if anyone has any idea why is this happening. Many thanks.
Regards,
JanetHi Janet,
you are right. This is a basic rule not to do any COMMIT or RFC calls in a user exit.
Have a look at SAP note 92550. Here they say that exit EXIT_SAPLMBMB_001 is called in the update routine MB_POST_DOCUMENT. And this routine is already called in UPDATE TASK from FUNCTION 'MB_UPDATE_TASKS' IN UPDATE TASK.
SAP also tells us not to do any updates on SAP system tables like MBEW, MARD, MSEG.
Before the exit is called, now they call 'MB_DOCUMENT_BADI' with methods MB_DOCUMENT_BEFORE_UPDATE and MB_DOCUMENT_UPDATE. Possibly you have more success implementing the BADI.
I don't know your situation and goal so this is all I can tell you now.
Good luck!
Regards,
Clemens -
Type of error in the log file while using using call transaction mode u2018Eu2019
Hi Gurus,
Please Answer for this qusetion urgently
what type of error exactly you will be seeing in the log file while using call transaction mode u2018Eu2019?
Thanks/
Radha.Hi,
Can you be clear.
In call transaction , no error logs are created, you have to handle the errors explicitly using the structure BDCMSGCOLL.
Whenever you use E mode then if the transaction encounters any of the errors i.e. data type mismatching or invalid values etc, it will stop at that screen.
You can handle the errors in call transaction in the following method.
create a table using the structure BDCMSGCOLL.
then
loop at ......
CALL TRANSACTION 'XK01' USING I_BDCDATA MODE 'N' UPDATE 'S' MESSAGES INTO I_MESGTAB.
endloop.
SORT I_MESGTAB BY MSGID MSGV1 ASCENDING.
DELETE ADJACENT DUPLICATES FROM I_MESGTAB.
LOOP AT I_MESGTAB.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = I_MESGTAB-MSGID
LANG = I_MESGTAB-MSGSPRA
NO = I_MESGTAB-MSGNR
V1 = I_MESGTAB-MSGV1
V2 = I_MESGTAB-MSGV2
V3 = I_MESGTAB-MSGV3
V4 = I_MESGTAB-MSGV4
IMPORTING
MSG = MESG1.
IF I_MESGTAB-MSGTYP = 'S' .
WA_SUCCMESG-MESG = MESG1.
APPEND WA_SUCCMESG TO I_SUCCMESG.
else IF I_MESGTAB-MSGTYP = 'E' .
WA_ERRMESG-MESG = MESG1.
APPEND WA_ERRMESG TO I_ERRMESG.
ENDIF.
ENDLOOP.
Hope this is clear.
Thanks and Regards. -
Hi Experts,
I am using CALL TRANSACTION in ALV for VA02, but I want to go on item number. The following form i have used and it is working but I want to go on perticular item number in va02. pl. guide me.
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&IC1'.
IF rs_selfield-fieldname = 'VBELN'.
READ TABLE it_out INTO wa_itab INDEX rs_selfield-tabindex.
SET PARAMETER ID : 'AUN' FIELD wa_itab-vbeln .
'APO' FIELD wa_itab-posnr.
CALL TRANSACTION 'VA02' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM.
*=====================================
YusufHi,
use BDC for that....
check out the BDC part of coding for it.
REFRESH itab_bdcdata.
CLEAR itab_bdcdata.
*initial screen
PERFORM bdc_dynpro USING 'SAPMV45A'
'0102'.
PERFORM bdc_field USING 'BDC_CURSOR'
'VBAK-VBELN'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'VBAK-VBELN'
<b> g_t_atpma4-vbeln.</b>
*item overview screen
PERFORM bdc_dynpro USING 'SAPMV45A'
'4001'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=POPO'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RV45A-MABNR(04)'.
*popup screen (move item to top)
PERFORM bdc_dynpro USING 'SAPMV45A'
'0251'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RV45A-POSNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=POSI'.
PERFORM bdc_field USING 'RV45A-POSNR'
<b>g_t_atpma4-posnr.</b>
*item overview screen
PERFORM bdc_dynpro USING 'SAPMV45A'
'4001'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'VBAP-POSNR(01)'.
PERFORM bdc_field USING 'RV45A-VBAP_SELKZ(01)'
'X'.
*Call transaction VA02
CALL TRANSACTION 'VA02' USING itab_bdcdata
MODE 'E'
UPDATE 'A'
MESSAGES INTO itab_bdcmsg.
Patil -
How to use call transaction 'XD03' in abap.
Hi Experts,
I am use call transaction xd03 in programme but when i click on any customer number the transaction xd03 is called and it show only one customer details. i.e 1 st in row . other customer details not show. so please write code to solved my problemsHi
It's not clear where you set the USER_COMMAND routine and where you set the OK_CODE for doubleclick.
I suppose you set the routine in the importing parameter I_CALLBACK_USER_COMMAND (?) becasue you aren't use the parameter for the event, but for OK_CODE?
Remember the OK_CODE should be upper case:
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
"WHEN 'kunnr'. <--------------- UPPER CASE
WHEN 'KUNNR'.
See my sample:
TYPE-POOLS SLIS.
DATA: BEGIN OF GT_FINAL OCCURS 0,
KUNNR LIKE KNA1-KUNNR,
NAME1 LIKE KNA1-NAME1,
END OF GT_FINAL.
* ALV
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
GT_LAYOUT TYPE SLIS_LAYOUT_ALV,
GT_REPID LIKE SY-REPID.
START-OF-SELECTION.
SELECT KUNNR NAME1 INTO TABLE GT_FINAL
UP TO 20 ROWS
FROM KNA1.
GT_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = GT_REPID
I_INTERNAL_TABNAME = 'GT_FINAL'
I_INCLNAME = GT_REPID
CHANGING
CT_FIELDCAT = GT_FIELDCAT[].
GT_LAYOUT-F2CODE = 'KUNNR'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GT_REPID
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IS_LAYOUT = GT_LAYOUT
IT_FIELDCAT = GT_FIELDCAT
TABLES
T_OUTTAB = GT_FINAL.
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
DATA: GWA_FINAL LIKE GT_FINAL.
CASE R_UCOMM.
WHEN 'KUNNR'.
READ TABLE GT_FINAL INTO GWA_FINAL INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
SET PARAMETER ID 'KUN' FIELD GWA_FINAL-KUNNR.
CALL TRANSACTION 'XD03' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM.TYPE-POOLS SLIS.
DATA: BEGIN OF GT_FINAL OCCURS 0,
KUNNR LIKE KNA1-KUNNR,
NAME1 LIKE KNA1-NAME1,
END OF GT_FINAL.
* ALV
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
GT_LAYOUT TYPE SLIS_LAYOUT_ALV,
GT_REPID LIKE SY-REPID.
DATA: FL_INPUT_OFF.
START-OF-SELECTION.
SELECT KUNNR NAME1 INTO TABLE GT_FINAL
UP TO 20 ROWS
FROM KNA1.
GT_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = GT_REPID
I_INTERNAL_TABNAME = 'GT_FINAL'
I_INCLNAME = GT_REPID
CHANGING
CT_FIELDCAT = GT_FIELDCAT[].
GT_LAYOUT-F2CODE = 'KUNNR'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GT_REPID
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IS_LAYOUT = GT_LAYOUT
IT_FIELDCAT = GT_FIELDCAT
TABLES
T_OUTTAB = GT_FINAL.
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
DATA: GWA_FINAL LIKE GT_FINAL.
CASE R_UCOMM.
WHEN 'KUNNR'.
READ TABLE GT_FINAL INTO GWA_FINAL INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
SET PARAMETER ID 'KUN' FIELD GWA_FINAL-KUNNR.
CALL TRANSACTION 'XD03' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM. TYPE-POOLS SLIS.
DATA: BEGIN OF GT_FINAL OCCURS 0,
KUNNR LIKE KNA1-KUNNR,
NAME1 LIKE KNA1-NAME1,
END OF GT_FINAL.
* ALV
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
GT_LAYOUT TYPE SLIS_LAYOUT_ALV,
GT_REPID LIKE SY-REPID.
DATA: FL_INPUT_OFF.
START-OF-SELECTION.
SELECT KUNNR NAME1 INTO TABLE GT_FINAL
UP TO 20 ROWS
FROM KNA1.
GT_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = GT_REPID
I_INTERNAL_TABNAME = 'GT_FINAL'
I_INCLNAME = GT_REPID
CHANGING
CT_FIELDCAT = GT_FIELDCAT[].
GT_LAYOUT-F2CODE = 'KUNNR'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GT_REPID
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IS_LAYOUT = GT_LAYOUT
IT_FIELDCAT = GT_FIELDCAT
TABLES
T_OUTTAB = GT_FINAL.
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
DATA: GWA_FINAL LIKE GT_FINAL.
CASE R_UCOMM.
WHEN 'KUNNR'.
READ TABLE GT_FINAL INTO GWA_FINAL INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
SET PARAMETER ID 'KUN' FIELD GWA_FINAL-KUNNR.
CALL TRANSACTION 'XD03' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM.
Max -
Passing select-options values using call transaction method
Hi Experts,
I have a scenario in which i have three fields BUKRS,WERKS and MATKL in an internal table i_tab and I have MATNR as a selection-option.
After this I have to use call transaction <tcode> for all the line items in the internal table and the MATNR select-option values I have to pass directly for each line of i_tab using call transaction method.
TYPES: BEGIN OF t_tab,
bukrs TYPE bukrs,
werks TYPE werks_d,
matkl TYPE matkl,
END OF t_tab.
DATA: w_tab TYPE t_tab,
i_tab TYPE STANDARD TABLE OF t_tab.
SELECT-OPTIONS: s_matnr FOR marc-matnr.
Now I am putting a loop at i_tab and have to use CALL TRANSACTION <TCODE> for each line with the SELECT-OPTIONS for MATNR.
Please tell me whether we can pass multiple ranges for MATNR using call transcation method.
for example there can be multiple single values/multiple ranges/excluded ranges for MATNR. so please suggest me how tho achieve this sceanrio using CALL transaction method of BDC.
Thanks a lot.
Regards,
KrishanHi Krishan,
For the Call transaction TCODE there is extension ....OPTIONS from OPT. Just Check it out. I think it is possible like this.
... OPTIONS FROM opt
*Effect*
This addition gives you control using the values of the components of the structure opt, which must be of the Dictionary type CTU_PARAMS. The components have the following meaning:
DISMODE
Processing mode (comparable with the MODE addition)
UPDMODE
Update mode (comparable with the UPDATE addition)
CATTMODE
CATT mode (controlling a CATT procedure)
The CATT mode can have the following values:
' ' No CATT procedure active
'N' CATT procedure without single screen control
'A' CATT procedure with single screen control
DEFSIZE
Use standard window size
RACOMMIT
COMMIT WORK does not end CATT procedure
NOBINPT
No batch input mode, that s SY-BINPT = SPACE.
NOBIEND
No batch input mode after BDC data has been read
The components DEFSIZE , RACOMMIT, NOBINPT, NOBIEND always take the following values:
'X' Yes
' ' No
If the OPTIONS addition is omitted, the following settings are valid for the control parameters:
DISMODE from the MODE addition
UPDMODE
from the UPDATE addition
CATTMODE
No CATT procedure active
DEFSIZE
Do not use standard window size
RACOMMIT
COMMIT WORK ends procedure successfully
NOBINPT
Batch input mode, that is SY-BINPT =X.
NOBIEND
Batch input mode also active after BDC data has been read
Regards,
Swapna. -
Best way to update custom table
Hello experts,
Iu2019m writing a report program and after pulling data from a custom table Iu2019m modifying certain fields within internal table and then eventually update custom table. The way Iu2019m updating custom table is working fine. However Iu2019m concern about performance issues because Iu2019m doing update on custom table within loop.
Here is my code for reference.
*& Form update_contracts
text
--> p1 text
<-- p2 text
FORM update_contracts .
Update record in an internal table first
loop at izsc_compliance into wa_zsc_compliance..
wa_zsc_compliance-zapproval = c_accepted.
wa_zsc_compliance-CHANGED_DT = sy-datum.
wa_zsc_compliance-CHANGED_TM = sy-uzeit.
wa_zsc_compliance-CHANGED_BY = sy-uname.
modify izsc_compliance from wa_zsc_compliance index sy-tabix.
write:/ sy-tabix, wa_zsc_compliance-vbeln_new, wa_zsc_compliance-zapproval.
if p_test is initial.
move wa_zsc_compliance to zsc_compliance.
update zsc_compliance.
endif..
endloop.
Write records to database
if p_test = 'X'.
skip.
write:/ 'Test mode'.
endif.
ENDFORM. " update_contracts
Iu2019m not certain if there is any better way by not doing update within loop and update custom table outside this loop.
Many thanks in advance.Hi,
Yes, there is a better way to update the custom table. That will be more performance oriented and will be a much cleaner approach. As, I am not much aware of the custom table structure which you have in your program, the best way that I can suggest is to remove the update statement from that check. I guess you are checking against the mode - test or production. Once you have done the check, put the selected entries in an internal table which is same as database table. And then in a single command - a single array operation as it is commonly called, you can update the custom table.
Have a look at the following link
[Overwriting Several Lines Using an Internal Table|http://help.sap.com/saphelp_bw33/helpdata/en/fc/eb3a94358411d1829f0000e829fbfe/content.htm]
[Inserting or Changing Lines|http://help.sap.com/saphelp_bw33/helpdata/en/fc/eb3ac8358411d1829f0000e829fbfe/content.htm]
You can also scan the forum for multiple links and references and sample examples.
Hope this will help. The above approach will be much more performance oriented and will help to optimize. Also, check where exactly you are providing the locking feature if at applicable in your business functionality.
Regards,
Samantak. -
Updating EKKO table using E1BPPAREX
Hi all,
My requirement is to update ekko table using E1BPPAREX segement. I have gone through so many posts regarding this.
In my case, PO number is not yet created. I am using BAPI_PO_CREATE1 for creating this . From PI side, if they pass the custom field value in the appropriate postion of VALUEPART field of E1BPPAREX, will it get updated to the ekko table automatically.
Regards,
SajithHi Sajith,
you have to do is populate structure extensionin. You'll have to implement the fm DDIF_NAMETAB_GET to look for the right place (offset) in order to add the field on the structure extension in.
Example:
CALL FUNCTION 'DDIF_NAMETAB_GET'
EXPORTING
tabname = c_ext_table --> ''BAPI_TE_MEPOHEADER
TABLES
dfies_tab = lt_tab
EXCEPTIONS
not_found = 1
OTHERS = 2.
CLEAR l_offset.
LOOP AT lt_tab.
CASE lt_tab-fieldname.
WHEN c_yourfield.
w_extin-valuepart1+l_offset = p_yourfield.
ENDCASE.
ADD lt_tab-leng TO l_offset.
ENDLOOP.
MOVE c_ext_table TO w_extin-structure.
APPEND w_extin TO p_i_extin.
Regards,
Carlos. -
How to create a session using call transaction method.
hi , this is nagaraju,
How to create a session using call transaction method.Hi,
About Data Transfer In R/3 System
When a company decides to implement the SAP R/3 to manage business-critical data, it usually does not start from a no-data situation. Normally, a SAP R/3 project comes into replace or complement existing application.
In the process of replacing current applications and transferring application data, two situations might occur:
The first is when application data to be replaced is transferred at once, and only once.
The second situation is to transfer data periodically from external systems to SAP and vice versa.
There is a period of time when information has to be transferred from existing application, to SAP R/3, and often this process will be repetitive.
The SAP system offers two primary methods for transferring data into SAP systems. From non-SAP systems or legacy system. These two methods are collectively called batch input or batch data communication.
1. SESSION METHOD
2. CALL TRANSACTION
3. DIRECT INPUT
First step for both the methods is to upload the data to internal table. From Internal Table, the data is transferred to database table by two ways i.e., Session method and Call transaction.
Session is intermediate step between internal table and database table. Data along with its action is stored in session i.e., data for screen fields, to which screen it is passed, the program name behind it, and how the next screen is processed.
When the program has finished generating the session, you can run the session to execute the SAP transactions in it. Unless session is processed, the data is not transferred to database table.
A technique similar to SESSION method, while batch input is a two-step procedure, Call Transaction does both steps online, one after the other. In this method, you call a transaction from your program.
SESSION METHOD
Data is not updated in database table unless Session is processed.
No sy-subrc is returned.
Error log is created for error records.
Updation in database table is always synchronous
CALL TRANSACTION
Immediate updation in database table.
Sy-subrc is returned.
Errors need to be handled explicitly
Updation in database table can be synchronous Or Asynchronous.
Regards,
Sruthi. -
While uploading data into the r/3 using call transaction or session method
hi experts
while uploading data into the r/3 using call transaction or session method error occured in the middle of the processing then how these methods behaves it transfers next records or not?hai
Session method: The records are not added to the database until the session is processed. sy-subrc is not returned. Error logs are created for error records. Updation in database table is always Synchronous.
Call Transaction method: The records are immediately added to the database table. sy-subrc is returned to 0 if successful. Error logs are not created and hence the errors need to be handled explicitly. Updation in database table is either Synchronous or Asynchronous.
While to transfer the data from the through if any errors occurs until the errors are the complete the data is not transfer to the SAP system.
the system compulsory shows the errors. that errors are stored into the error logs (Transaction is SM35).
so the session method should not return any value.
In call transaction method data is directly pass to the SAP system.
So its compulsory return the value.
Because of the call transaction is the function.
A function should return the value mandatory
In session method errors stroed in SYSTEM GENRATED ERROR LOG.
IN CALL TRANSACTION TO CAPTURE THE ERRORS WE SHOULD PERFORM THE FOLLOWING.
FIRST ME MUST DECLARE AN INTERNAL TABLE WITH THE STRUCTURE OF BDCMSGCOLL TABLE.
THEN WHILE WRITING THE CALL TRANSACTION STATEMENT WE SHOULD PUT THE 'E' MODE FOR CAPTURING ALL THE ERRORS.
THEN FINALLY THE CAPTURED ERRORS MUST TO SENT TO THE INTERNAL TABLE WHICH WE DECLARED IN THE BEGINNING WITH BDCMSGCOLL BY USING THE FUNCTION MODULE "FORMAT_MESSAGE"
AND THUS THE ERROR MESSAGES WILL BE SENT TO THE INTERNAL TABLE WHICH WE DECLARED AT THE BEGINNING. -
Error 00-341 RAISE_EXCEPTION when using Call Transaction for VA01 in backgr
Hi,
I am getting this message when I use call transaction to create a sales order using VA01. Following is the statement I have used. Note that when i execute the program online, I am not getting any errors. I could create sales order without any problem. I am getting this exception only when I run in background.
CALL TRANSACTION 'VA01'
USING BDC_TAB
MODE 'N'
UPDATE 'S'
MESSAGES INTO W_MESS_TAB.
When I captured message tab, I got following messages.
DC006 - Control Framework: Fatal error - GUI cannot be reached
00341 Runtime error RAISE_EXCEPTION has occurred.
Please help me in this regard.
Regards
KasiSome times execution of BDC program in back ground is different from the foreground. Some screens may appear in background and raise error while same will not when executed in foreground.
Double click the message in Session log to know more details.
One way is to suppress the screen while executing BDC.
Alternatively I suggest to use BAPI instead.
- Sanjay
Maybe you are looking for
-
Nat inside to outside, IP not in same subnet as outside IP
I already posted this but cant seem to find the post now, so re-posting. We have 10 IP's being NAT'd, all working ok. I need a servers outbound source address to be translated to an IP that is not in the same subnet as the outside IP: Outside IP = 1
-
Disclaimer: I am new to DB's. I'm looking at creating a MySQL database to hold tests done on DUTs (each with a specific serial). In theory, each DUT undergoes 3 tests. Each test produces a 401x9 2D array of DBLs. I am not concerned with the write spe
-
Re: Withholding Tax Configuration.
Hi Experts, We have almost completed Implementation of Company In Bangladesh. Now the Client wants T.D.S Configuration for Bangladesh. along with Callahan Remittance.I gone through Sap Note given in market place but no such configuration is availabl
-
Automatic generation of AWR reports
Hi, How to schedule the automatic JOB to generate the AWR reports hourly basis. ( automatic comparing between 2 snapshots and then generate the text file). Thanks in advance.
-
Hello I belive that you know faster way to import 100 movies with avi extenssion. I'm usin Quick Time Pro to create *.mov files. Do you know fastest way to do converssion. I'm using *.mov files to play movies in Front Row later. Thanx in advance