Batch Input - table scrolling
Hi.
Does anyone have experience with filling Account Assignement table in MIR4 via batch input session?
It seems to me like OK_CODE = '=P+' is not working.
Thanks for any advice how to fill that table for more than displayed amount of lines.
Pavel
Thanks for reply. I did try that but unfortunately it didn't help. I tried even P+, p, p++ with no result.
Similar Messages
-
Batch Input: How to handle loss on exchange in POSTING_INTERFACE_CLEARING?
Hi,
I'm using BAPI POSTING_INTERFACE_CLEARING to clear open items using batch input as it is done online in transaction FB05. It works fine except one little use case. For customers using a currency not equal to the local currency there could be differences in the debit amount due to actual exchange rates. If the debit amount at the day the open item should be cleared is less than the amount at the day the debit was created a new line item is automatically added to the clearing document which contains the loss on exchange. But this new line item is not complete so the clearing document could not be saved. In my example I have to add the cost center to the loss on exchange line item. It's no problem in transaction FB05 since there is a dynpro for it. But how could I add this cost center in batch input using function module POSTING_INTERFACE_CLEARING? I just added the corresponding field COBL-KOSTL to table T_FTPOST of fm POSTING_INTERFACE_CLEARING. But in the batch input tables which are created in the function module the field COBL-KOSTL is added for dynpro SAPLKACB 0002 instead of dynpro SAPLKACB 1010 in which the cost center is needed. Dynpro SAPLKACB 0002 contains the cost center but it is not displayed when clearing open items. So POSTING_INTERFACE_CLEARING returns with an error saying COBL-KOSTL does not exist in SAPLKACB 0002. But COBL-KOSTL might still be missing in dynpro SAPLKACB 1010. So which field do I have to add to the batch input (fm POSTING_INTERFACE_CLEARING) so the cost center is used in the loss on exchange line item in dynpro SAPLKACB 1010?
Did anybody face the same problem?
Regards,
RobertOf course, the screen SAPLKACB 1010 contains the cost center field but it is not set in the batch session. I faced a similar problem with screen SAPLKEAK 0300 where I had to enter different field names than expected. BSEG-RKE_KUNWE instead of BSEG-KUNWE, BSEG-RKE_KNDNR instead of BSEG-KNDNR, BSEG-RKE_BUKRS instead of BSEG-BUKRS and so on. That's why I want to know if I have to set an other field name for COBL-KOSTL in SAPLKACB 1010. Since field name COBL-KOSTL is already used for SAPLKACB 0002.
Maybe anybody knows how or where the mapping from POSTING_INTERFACE_CLEARING fields to batch session fields is done. Otherwise I need to debug POSTING_INTERFACE_CLEARING again to find it.
I didn't find any suitable enhancements or user exits in FB05 yet but I can have another look.
Regards,
Robert -
Ok-code to scroll down in a table control on batch input
Hello,
I'm trying to create a batch input session for transaction VA02 (Change sales order) :
I need to go scroll down in the table control of the screen (item -> Conditions) 3 times to delete the a line; In the batch input (SHDB), i go scroll down by clicking on the scroll bar of the table control, mark the line of the page and delete it.
The recording show me the ok-code /00 to scroll down (with BDC_CURSOR in the second line), but in the program it don't work, the ok do nothing the 3 times and mark the incorrect line.
Can anyone tell an idea of what is the correct ok-code to scroll down?
Thanks in advance
Alvaro
PD: My SAP system is an ECC 6.0Hi Alvaro
One time i had to do similar work for Creation of General Task List in PM module and this is how i did it
'X' 'SAPLCMDI' '3500',
' ' 'BDC_CURSOR' 'RIHSTPX-DISP(01)',
' ' 'BDC_OKCODE' '=P+',
' ' 'RIHSTPX-IDNRK(01)' itab-idnrk,
' ' 'RIHSTPX-MENGE(01)' itab-menge,
' ' 'RIHSTPX-MEINS(01)' itab-meins,
' ' 'RIHSTPX-DISP(01)' itab-disp.
I had to select line 1 hence you can see the position number ( 01 ) in the field name. As you can see based on this positioning you can select the appropriate line and make modifications as you like and also use okcode of '=P+' to scroll done. Hope this helps. Reward if appropriate.
Best Regards
Sid Arora -
Batch input with table control
Hi,
i have a problem with the batch input of picking window in vl02n transaction. I need to select a row of the bottom table but i don't know how many lines ara available in the program(different than the number of lines i can see) and it's possible that i will have to click the page down button, but i don't know when do this.
I can't find any positioning option or similar.
Any suggestion for doing this?
ThanksHi ,
pls use the bi-recorder (ta: shdb)
here's an example for positioning:
*positioning
perform bdc_dynpro using 'SAPMF02D' '0360'.
perform bdc_field using 'BDC_CURSOR' 'KNVK-NAME1(03)'.
perform bdc_field using 'BDC_OKCODE' '=LSDP'.
*page down
perform bdc_field using 'BDC_CURSOR' 'KNVK-NAMEV(04)'.
perform bdc_field using 'BDC_OKCODE' '=P+'.
regards Andreas -
Calling Batch input from Web Dynpro - any alternatives for table updates?
Hi!
I am asked to create a screen in Web Dynpro for the GJ30 transaction (JV Cutback mapping of WBS' elements). I created a remote enabled function module which call batch input for GJ30 . Testing the Function modules direclty goes fine, but not calling the function module from WD. then I get the same error message as when I once tried to call SAP GUI from Web Dynpro ( Call transaction /submit program).
My next step is to try to create a batch input session (instead of call transaction) and run it using rsbdcsub, and then check the result of the run. But maybe this will fail of the same reason as well, and I suppose this will make the user waiting longer for the response .
I read somewhere that Web Dynpro does not support batch Input. But what can you do when there are no standard BAPI's for the update you want to do in SAP ? We are not supposed to do direct table updates.
Anyone who have struggled with the same issues and found a solution??
regards, TineHi,
as BDC is calling screens and in Webdynpro ABAP you cannot use SAP GUI sceeen, you are getting short dump.
Refer CNTL_SYSTEM_ERROR in webservices from r/3 system
Thanks,
Chandra -
In which tables are batch input error messages logged?
does anybody know in which table are the batch input error messages logged?
I have to display the error messages which have occured during the transaction
I tried to find out, but i could see only the table BDCMSGCOLL, this table has only the Batch input message number and not the message itself?
does anybody know about the batch input error messages?hi,
check the sample code below.
messtab is of type BDCMSGCOLL.
Call the transaction and then use T100 to get the message.
DATA: l_mstring(480).
call transaction using
REFRESH messtab.
CALL TRANSACTION tcode USING bdcdata
MODE ctumode
UPDATE cupdate
MESSAGES INTO messtab.
l_subrc = sy-subrc.
SKIP.
LOOP AT messtab.
SELECT SINGLE * FROM t100 WHERE sprsl = messtab-msgspra
AND arbgb = messtab-msgid
AND msgnr = messtab-msgnr.
IF sy-subrc = 0.
l_mstring = t100-text.
IF l_mstring CS '&1'.
REPLACE '&1' WITH messtab-msgv1 INTO l_mstring.
REPLACE '&2' WITH messtab-msgv2 INTO l_mstring.
REPLACE '&3' WITH messtab-msgv3 INTO l_mstring.
REPLACE '&4' WITH messtab-msgv4 INTO l_mstring.
ELSE.
REPLACE '&' WITH messtab-msgv1 INTO l_mstring.
REPLACE '&' WITH messtab-msgv2 INTO l_mstring.
REPLACE '&' WITH messtab-msgv3 INTO l_mstring.
REPLACE '&' WITH messtab-msgv4 INTO l_mstring.
ENDIF.
CONDENSE l_mstring.
WRITE: /4 messtab-msgtyp, l_mstring(250).
ELSE.
WRITE: /4 messtab.
ENDIF.
ENDLOOP. -
Table control lines cannot be controlled in Batch Input session ?
I am using a program which creates Batch Input sessions for the transaction FCHR (Online cashed checks) . The second screen is that of a table control where the check number is entered.
I observed that while doing SHDB, if we tick the default size then changing the desktop resolution has no effect on the number of lines in table control - we see 14 lines in both cases.However, when the batch input session is processed, the number of table control lines varies according to the resoution(9 lines for 800600 and approx 15 for 1024768). Selecting the 'Dynpro standard size' option while processing the session has no effect.
I know call transaction with 'default' parameter in optparam will take care of this problem. But I want to know whether Batch Input Session is known to have a problem with different resolutions.HI..
i had the same problem once.... i dealt in the following way
while entering values in table control
1) enter value in the first line
2) look for button on application toolbar using which you can increment line
3) you will not find difference for first line but you will find it when you insert second line and go for next line.
4) now for every increment you will get table conrol as (02) if you are going for recording.
this will surely solve all issue related to table control as it solved for me
regards
Edited by: Mohit Kumar on Feb 19, 2009 12:04 PM -
Hi there guys,
does anyone know where the log's from a batch input are stored, i don't mean just the header of the log, but the messages that appear in the SM35 if we choose to view a log ?
Hope someone can help me
Best,
Ricardo MonteiroLook at How to get error messages from SM35 log. How to get this from TemSe objects
Regards -
Batch input of a list of values
Hello,
I have to make a batch input of a list.
The screen of the transaction contains a list with 9 lines, if i enter a value in one, another line is added to the list.
I did record this transaction and have an incremented list in the generated program that looks like this :
it begins whith ADRPCIT-POST_CODE(01) and increments till 09
perform bdc_dynpro using 'SAPLSZRL' '0400'.
perform bdc_field using 'BDC_CURSOR'
'ADRPCDCITY-POST_CODE(08)'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'ADRPCDCITY-POST_CODE(08)'
record-POST_CODE_08_017.
perform bdc_dynpro using 'SAPLSZRL' '0400'.
perform bdc_field using 'BDC_CURSOR'
'ADRPCDCITY-POST_CODE(09)'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'ADRPCDCITY-POST_CODE(09)'
record-POST_CODE_09_018.
perform bdc_dynpro using 'SAPLSZRL' '0400'.
perform bdc_field using 'BDC_CURSOR'
'ADRPCDCITY-POST_CODE(09)'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPLSZRL' '0400'.
perform bdc_field using 'BDC_CURSOR'
'ADRPCDCITY-POST_CODE(07)'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'ADRPCDCITY-POST_CODE(07)'
record-POST_CODE_07_019.
perform bdc_dynpro using 'SAPLSZRL' '0400'.
perform bdc_field using 'BDC_CURSOR'
'ADRPCDCITY-POST_CODE(08)'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'ADRPCDCITY-POST_CODE(08)'
record-POST_CODE_08_020.
perform bdc_dynpro using 'SAPLSZRL' '0400'.
perform bdc_field using 'BDC_CURSOR'
'ADRPCDCITY-POST_CODE(09)'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'ADRPCDCITY-POST_CODE(09)'
record-POST_CODE_09_021.
perform bdc_dynpro using 'SAPLSZRL' '0400'.
perform bdc_field using 'BDC_CURSOR'
'ADRPCDCITY-POST_CODE(09)'.
perform bdc_field using 'BDC_OKCODE'
'=SAVE'.
What i did is setting the value of the incremented number to 09 if it's greater than 09 but i'm not sure it's the right way to do it cause i get only 9 records
My code :
LOOP AT gt_record ASSIGNING <fs_record>.
IF sy-tabix > 9.
ligne = 9.
ELSE.
ligne = sy-tabix.
ENDIF.
IF ligne > 1.
IF city_mem EQ <fs_record>-city_code_001.
flag_end = 'X'.
ELSE.
PERFORM bdc_field USING 'BDC_OKCODE'
'=SAVE'.
PERFORM bdc_transaction USING 'SR10'.
CLEAR flag_end.
ENDIF.
ENDIF.
city_mem = <fs_record>-city_code_001.
IF flag_end NE 'X'. "premier passage
PERFORM bdc_dynpro USING 'SAPLSZRC' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'ADRCITYD-CITY_CODE'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'ADRCITYD-CITY_CODE'
<fs_record>-city_code_001.
PERFORM bdc_field USING 'ADRCITYD-COUNTRY'
'FR'.
PERFORM bdc_field USING 'ADRCITYD-LANGU'
'F'.
PERFORM bdc_dynpro USING 'SAPLSZRC' '0200'.
PERFORM bdc_field USING 'BDC_CURSOR'
'ADRCITYD-COMMU_CODE'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'ADRCITYD-FLAG_STRTS'
'X'.
PERFORM bdc_field USING 'ADRCITYD-CITY_NAME'
<fs_record>-city_name_005.
PERFORM bdc_field USING 'ADRCITYD-REGION'
<fs_record>-region_006.
PERFORM bdc_field USING 'ADRCITYD-TIME_ZONE'
'CET'.
PERFORM bdc_field USING 'ADRCITYD-COMMU_CODE'
<fs_record>-commu_code_008.
PERFORM bdc_field USING 'ADRCITYD-DEF_LANGU'
'F'.
PERFORM bdc_dynpro USING 'SAPLSZRC' '0200'.
PERFORM bdc_field USING 'BDC_CURSOR'
'ADRCITYD-CITY_NAME'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=PSTC'.
PERFORM bdc_field USING 'ADRCITYD-FLAG_STRTS'
'X'.
PERFORM bdc_field USING 'ADRCITYD-CITY_NAME'
<fs_record>-city_name_005.
PERFORM bdc_field USING 'ADRCITYD-REGION'
<fs_record>-region_006.
PERFORM bdc_field USING 'ADRCITYD-TIME_ZONE'
'CET'.
PERFORM bdc_field USING 'ADRCITYD-COMMU_CODE'
<fs_record>-commu_code_008.
PERFORM bdc_field USING 'ADRCITYD-DEF_LANGU'
'F'.
* PERFORM bdc_dynpro USING 'SAPLSZRL' '0400'.
ENDIF.
PERFORM bdc_dynpro USING 'SAPLSZRL' '0400'. "ajout2
lignec = ligne.
CONCATENATE 'ADRPCDCITY-POST_CODE(' lignec ')' INTO cp.
PERFORM bdc_field USING 'BDC_CURSOR'
cp.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING cp
<fs_record>-post_code_01_016.
ENDLOOP.
* deniere sauvegarde
PERFORM bdc_field USING 'BDC_OKCODE'
'=SAVE'.
PERFORM bdc_transaction USING 'SR10'.
CLEAR flag_end.
PERFORM close_group.
PERFORM close_dataset USING dataset.
Can somebody help me on this one ?
Thank you,
Tom.If it is table control you may have to pass PageDown after 9 rec & again start with (01)
record number remains 1 to 9 but Top_line parameter will change to 9or10 after 1 pagedown.
Cxould be P++
you can record Pagedown & check recording. -
Is it possible to maintain a view vai Batch Input
Hi guys,
The user required to develop a BDC program to upload the data source from outside of SAP, and maintain these data into a view via Tcode: SM34. But it seems the view doesn't support Batch input.....
Can anybody tell me, is it possible to maintain a view via Batch input? Many thanks!
Brian LiuAdditional information:
This requirement is to upload the Overhead Rate data from outside of SAP, and maintained via KZM2 or SM34. But when I tried to record a BDC for KZM2, it seems that the SAP can not support batch input.
I find a SAP note 208474, it says:
Symptom
Overhead rates of the costing sheet of the overhead rates, which have been created, changed or deleted via batch input or Call Transaction, are not saved.
The same rates are saved if processing is carried out via Transaction KZZ2 or the Implementation Guide IMG.
Cause and prerequisites
Processing the Customizing transactions for maintaining the overhead rates of the costing sheet (Transaction KZZ2, KZM2) is
not supported in the batch input. This corresponds to the SAP standards according to which Customizing transactions in general need not necessarily be capable of batch input.
The batch input data of the overhead rates are not saved in the standard because processing is terminated by a COMMIT WORK. This statement ensures that the internal tables for the transport of the overhead rates are only deleted if their transfer to the database tables to be transported has been processed successfully.
Solution
The subsequent modification allows batch input processing of the overhead rates, by suppressing the COMMIT WORK statement. As a result of the modification, the tables in the transport request of the overhead rates may be incomplete in single cases.
In cases where the overhead rates have not been transferred completely to the target system after implementation of the modification, include the overhead rates again in a transport request, repeat the transport and, if necessary, subsequent processing.
Note that the attached modifications are not and will not be included in the R/3 standard system.
I modified the sap standard program L0COEF04 according to another SAP note 150041, but after the modification, I still couldn't record the BDC.
Anybody who have ever met the same situation, or can give me some suggestion? With many thanks!
Brian Liu -
BDC programming using Batch input Session.
Hello Experts.
I'm an ABAP beginner. I've benn practicing BDC programming using Batch input Session
at the moment.
This is the program that upload Local file which has plural records, and put the records into a Session.
These are the records.
413459,KIM EI HWAN121 ,19810607,MIADONG1234
423459,KIM EI HWAN122 ,19810607,MIADONG1235
433459,KIM EI HWAN123 ,19810607,MIADONG1236
443459,KIM EI HWAN124 ,19810607,MIADONG1237
453459,KIM EI HWAN125 ,19810607,MIADONG1238
463459,KIM EI HWAN126 ,19810607,MIADONG1239
I succeeded making Session.
However, for some reaseon, every record in the Session has got the same, value which is the first record.
Why is this happening? And How can I correct the code below?
REPORT ZBCUSER002_BATCH NO STANDARD PAGE HEADING
LINE-SIZE 255
MESSAGE-ID ZBATCH.
= Types definition ===================================================
TYPES: BEGIN OF TYP_LOCAL, "For Local file upload
RECORD(200) TYPE C,
END OF TYP_LOCAL.
= Internal table definition ==============================================
DATA: BEGIN OF BDC_TAB OCCURS 0. "BDCDATA itab
INCLUDE STRUCTURE BDCDATA.
DATA: END OF BDC_TAB.
DATA: BEGIN OF MESSAGE_BDC OCCURS 0. "Message itab
INCLUDE STRUCTURE BDCMSGCOLL.
DATA: END OF MESSAGE_BDC.
DATA: TBL_LOCAL TYPE STANDARD TABLE OF TYP_LOCAL, "Local file itab
F_TBL TYPE FILETABLE. "FILETABLE fot local
= Structure table definition =========================================
DATA: STR_F_TBL LIKE LINE OF F_TBL, "FILETABLE structure
STR_LOCAL TYPE TYP_LOCAL. "Local file structure
= Variable definition ================================================
DATA: LV_RC TYPE I, "Method parameter
ENUMBER TYPE ZT601-ENUMBER, "Employee number
NAME TYPE ZT601-NAME, "Employee name
BIRTH TYPE ZT601-BIRTH, "Birthday
HOMETOWN TYPE ZT601-HOMETOWN, "Hometown
SYSVAL TYPE SY-SUBRC. "System valuible
= Constants definition ===============================================
CONSTANTS: TBL_NAME(10) TYPE C VALUE 'ZT601'. "Table name ZT601
= Parameters definition ==============================================
PARAMETERS: F_NAME TYPE RLGRAP-FILENAME OBLIGATORY, "File path
EXECMODE(1) TYPE C. "Execute mode
INITIALIZATION
*----- Initialize all valuables, structures and internal tables
CLEAR: LV_RC,
STR_F_TBL,
STR_LOCAL,
ENUMBER,
NAME,
BIRTH,
HOMETOWN.
REFRESH: F_TBL,
TBL_LOCAL.
AT SELECTION-SCREEN
*----- When the button next to Parameter 'F_NAME',
*----- File dialog open.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR F_NAME.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
EXPORTING
WINDOW_TITLE = 'SELECT FILE'
DEFAULT_FILENAME = '*.TXT'
CHANGING
FILE_TABLE = F_TBL
RC = LV_RC
EXCEPTIONS
FILE_OPEN_DIALOG_FAILED = 1
CNTL_ERROR = 2
OTHERS = 3
*----- system valiable check.
*----- If done properly,
*----- Put the path into the File path parameter
IF SY-SUBRC = 0.
READ TABLE F_TBL INTO STR_F_TBL INDEX 1.
F_NAME = STR_F_TBL.
*----- If not done properly, show message
*----- An error occured while getting file path then end program
ELSE.
MESSAGE E000.
ENDIF.
*----- Execute code can only be A or N.
AT SELECTION-SCREEN ON EXECMODE.
IF EXECMODE <> 'A' AND EXECMODE <> 'N'.
MESSAGE E001.
ENDIF.
START-OF-SELECTION
START-OF-SELECTION.
*----- Upload Local file of file path parameter.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = F_NAME
FILETYPE = 'ASC'
TABLES
DATA_TAB = TBL_LOCAL
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
OTHERS = 6.
*----- System valiable check.
*----- If not done properly, show an error message
*----- An error occured while uploading local file then end program
IF SY-SUBRC <> 0.
MESSAGE E002.
ENDIF.
PERFORM BDC_OPEN.
*----- Loop Internal table
LOOP AT TBL_LOCAL INTO STR_LOCAL.
*----- Spilt the file record and put them into each valiable.
SPLIT STR_LOCAL AT ',' INTO ENUMBER
NAME
BIRTH
HOMETOWN.
*----- Data check Function module
CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
EXPORTING
DATE = BIRTH
EXCEPTIONS
PLAUSIBILITY_CHECK_FAILED = 1
OTHERS = 2.
*----- When error occurs while checking date, show an error message.
*----- (&1) is not date
IF SY-SUBRC <> 0.
MESSAGE E003 WITH BIRTH.
ENDIF.
*-- The first screen of SE11
*----- Screen number 0102 of program id SAPMSRD0
PERFORM BDC_DYNPRO USING 'SAPMSRD0' '0102'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RSRD1-TBMA_VAL'. "Field on Cursor
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=SHOW'. "Display button
PERFORM BDC_FIELD USING 'RSRD1-TBMA'
'X'.
PERFORM BDC_FIELD USING 'RSRD1-TBMA_VAL'
TBL_NAME. "ZT601
*-- Table definition screen
*----- Screen number 2000 of program id SAPLSD02
PERFORM BDC_DYNPRO USING 'SAPLSD02' '2000'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'DD02D-TABCLTEXT'. "Field on Cursor
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TDED'. "Create entry
PERFORM BDC_FIELD USING 'BDC_SUBSCR'
'SAPLSD02'.
PERFORM BDC_FIELD USING 'BDC_SUBSCR'
'SAPLSED5'.
*-- Data input screen
*----- Screen number 0101 of program /1BCDWB/DBZT601
PERFORM BDC_DYNPRO USING '/1BCDWB/DBZT601' '0101'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ZT601-CRUSER'. "Field on Cursor
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=SAVE'. "Save
PERFORM BDC_FIELD USING 'ZT601-MANDT'
SY-MANDT. "Client
PERFORM BDC_FIELD USING 'ZT601-ENUMBER'
ENUMBER. "Employee number
PERFORM BDC_FIELD USING 'ZT601-NAME'
NAME. "Employee name
PERFORM BDC_FIELD USING 'ZT601-BIRTH'
BIRTH. "Birthday
PERFORM BDC_FIELD USING 'ZT601-HOMETOWN'
HOMETOWN. "Hometown
PERFORM BDC_FIELD USING 'ZT601-CRDATE'
SY-DATUM. "System date
PERFORM BDC_FIELD USING 'ZT601-CRTIME'
SY-UZEIT. "System time
PERFORM BDC_FIELD USING 'ZT601-CRUSER'
SY-UNAME. "System user
*-- Data input screen (After input)
*----- Screen number 0101 of program /1BCDWB/DBZT601
PERFORM BDC_DYNPRO USING '/1BCDWB/DBZT601' '0101'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/EBACK'. "Back
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'ZT601-CRUSER'. "Field on Cursor
*-- Table definition screen]
*----- Screen number 2000 of program SAPLSD02
PERFORM BDC_DYNPRO USING 'SAPLSD02' '2000'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'DD02D-TABCLTEXT'. "Field on Cursor
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=WB_BACK'. "Back
*-- The first screen of SE11
*----- Screen number 0102 of program SAPMSRD0
PERFORM BDC_DYNPRO USING 'SAPMSRD0' '0102'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RSRD1-TBMA_VAL'. "Field on Cursor
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BACK'.
PERFORM BDC_FIELD USING 'RSRD1-TBMA'
'X'.
PERFORM BDC_FIELD USING 'RSRD1-TBMA_VAL'
TBL_NAME.
PERFORM BDC_INSERT.
ENDLOOP.
PERFORM BDC_CLOSE.
FORM BDC_DYNPRO *
Put Program-Id, Dynpro screen number, Start point
into DBCDATA
--> PROGRAM *
--> DYNPRO *
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDC_TAB.
BDC_TAB-PROGRAM = PROGRAM.
BDC_TAB-DYNPRO = DYNPRO.
BDC_TAB-DYNBEGIN = 'X'.
APPEND BDC_TAB.
ENDFORM.
FORM BDC_FIELD *
Put Field Name and Value into BDCDATA
--> FNAM *
--> FVAL *
FORM BDC_FIELD USING FNAM FVAL.
CLEAR BDC_TAB.
BDC_TAB-FNAM = FNAM.
BDC_TAB-FVAL = FVAL.
APPEND BDC_TAB.
ENDFORM.
FORM bdc_process *
FORM BDC_OPEN.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = 'Testsession'
KEEP = 'X'
USER = SY-UNAME.
IF SY-SUBRC <> 0.
MESSAGE E006 WITH SY-SUBRC.
ENDIF.
ENDFORM.
FORM bdc_insert *
FORM BDC_INSERT.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'SE11'
TABLES
DYNPROTAB = BDC_TAB
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7.
IF SY-SUBRC <> 0.
MESSAGE E007 WITH SY-SUBRC.
ENDIF.
CLEAR: BDC_TAB.
ENDFORM.
FORM bdc_close *
FORM BDC_CLOSE.
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE E008 WITH SY-SUBRC.
ENDIF.
ENDFORM.God I forgot to refresh Internal table after putting record into Session.
Now I'm done.
You guys be careful too. -
Error exec. Background Mode a Batch-Input using KP26 Transaction Code
I have a program that build a Batch-Input based on transaction code KP26.
I encounter the following error :
Field Z-BDC02(1) is not an input field (Program : SAPLKPP2 Screen : 0112)
When executing in background I got the error and when executing in Foreground, it is OK.
I use SHDB to look at the field needed and it gave me the same field to use.
Here is an extract of my program for the field I have the issue on :
PERFORM F100_BDC_FIELD USING 'Z-BDC02(01)' I_T01-LST.
PERFORM F100_BDC_FIELD USING 'Z-BDC05(01)' I_T01-SPRED.
PERFORM F100_BDC_FIELD USING 'Z-BDC07(01)' I_T01-TOV.
PERFORM F100_BDC_FIELD USING 'Z-BDC08(01)' I_T01-TOF.
Any one have an hint to solve this ?Hi,
Just one remark: batch input is always executed in synchronous mode (hopefully, otherwise we would get many lock issues during mass updates!) Or is there something I missed?
Same thing when you use BDC_INSERT, CTU_PARAMS is ignored ([SAP note 1437811 (Batch input: BDC_INSERT parameter CTUPARAMS)|https://service.sap.com/sap/support/notes/1437811 ])
About the issue, I don't know, so maybe explain more about the context: for instance, do you run the session under a different user? (for instance, the user could be assigned a transaction/screen variant with table control variant, that protects some fields) Do you have one transaction in the batch input session or are there several ones. Try with one only to see if it works. If yes, then maybe it's something in memory that changes the "input-capability" of the field after the first transaction.
Sandra -
PO creation using LSMW through batch input method
Hi, I am new to working with LSMW and i have completed a project for creating purchase orders using the direct data input method. I need to do the same using batch input method, however in the maintain structure relationship step, it is only allowing me to assign one structure to the recording that i have done, however in po creation we need separate (nested) structure for header and line item, could anybody help me past this please?
Hi Rudra!
OK, now you just know, why you have only one line, not multiple PO item lines. To get a dynamic number of items, you need a complex program - just like standard direct input.
If you need a field, which is not part of this program, don't try to write your own program for batch input - it's just to much work before you have a good result.
You can use Bapi method instead with BAPI_PO_CREATE1. This can handle a lot of fields and there is some documentation available how to fill the Bapi.
If this looks to complicated in the first moment, think about creation of POs via direct input and a small batch recording to change your additional field(s) afterwards. (You can select EKPO table to generate list of 'wrong' migrated orders for input in LSMW.) Use field 'Item' in the bottom of ME22 to position your desired line in first screen line, just change one PO-line after one other (every time a 'save' -> no problem with different number of lines / PO).
Regards,
Christian -
No batch input data for screen SAPMSSY3 0131 in Sales order IDOC
I am processing Sales order IDOCS in status 64 using RBDAPP01 .Some of them error out to status 51 with the message -
No batch input data for screen SAPMSSY3 0131 .
I know the standard IDOC inbound process tries to simulate the posting in a BDC like process.
Now, I went to we19 and the screen hangs up in a pop up in the partners tab with partner type 'WE' and my shipto (which is actually filled in the IDOC), missing..upon repeatedly hitting enter, it goes thru and an idoc is posted in status 53. But still unable to get through the root of this issue.
Any, insight will help.Hi,
I think the pop-up is generated through and user-exit for which recording is missing. This is why your idoc stays in status 64...
Handle the screen recording in the user exit IDOC_INPUT_ORDERS
user exit routine
PERFORM customer_function_dynpro.
FORM CUSTOMER_FUNCTION_DYNPRO.
CALL CUSTOMER-FUNCTION '002'
EXPORTING DXVBAK = XVBAK
DVTCOMAG = VTCOMAG
DLAST_DYNPRO = LAST_DYNPRO
DXMESCOD = IDOC_CONTRL-MESCOD
TABLES DXBDCDATA = BDCDATA
DXVBAP = XVBAP
DXVBEP = XVBEP
DYVBEP = YVBEP
DXVBADR = XVBADR
DYVBADR = YVBADR
DXVBPA = XVBPA
DXVBUV = XVBUV
DIDOC_DATA = IDOC_DATA
DXKOMV = XKOMV
DXVEKP = XVEKP
DYVEKP = YVEKP
EXCEPTIONS
USER_ERROR = 01.
Regards,
Krishnakumar -
Creation of batch input session for mass reversal of payment documents
Hello FI experts,
There is a business requirement in which the users want to reverse the payments en-masse. This can be achieved by creating a batch input session via a custom program to upload the documents from excel . Then calling FBRA and FB08 to do the resetting and reversal.
My issue is how to create the batch input session ? Please help.
Regards,
VanHi,
I have got developed such program earlierr.
You can define your custom program specification as below:-
(A) Based on the selection screen, the program will read all the records (field document number VBLNR, company code ZBUKR and year from field ZALDT) from table REGUH. (Proposal Run Indicator XVORL should be blank.)
(B) If Paying company code (REGUH-ZBUKR) is equal to Sending company code (REGUH-ABSBU):-
Step 1:- For each record of (Payment Document Number (REGUH-VBLNR), Company code (REGUH-ZBUKR), and Fiscal Year (REGUH-ZALDT)) it will call transaction FBRA and will reset the clearing of the document.
Step 2:- Then call transaction FB08 and pass the data as below:-
Document Number = Payment Document Number (REGUH-VBLNR)
Company Code = Company code (REGUH-ZBUKR)
Fiscal Year = Fiscal Year (REGUH-ZALDT)
Reversal Reason, Posting Date and Posting period will be defaulted from the selection screen of out program.
(C) If Paying company code (REGUH-ZBUKR) is not equal to Sending company code (REGUH-ABSBU):-
Step 1:- For each record of (Payment Document Number (REGUH-VBLNR), Company code (REGUH-ZBUKR), and Fiscal Year (REGUH-ZALDT)) it will call transaction FBRA and will reset the clearing of the document.
Step 2:- for each record of (Payment Document Number (REGUH-VBLNR), Company code (REGUH-ZBUKR), and Fiscal Year (REGUH-ZALDT)) get the cross company code document number (BKPF-BVORG) and
(ii) Then find out the Document number (BKPF-BELNR) from BKPF matching BUKRS = Sending company code (REGUH-ABSBU) and GJAHR = Fiscal Year (REGUH-ZALDT) and BVORG = cross company code document number (BKPF-BVORG) as obtained above in
(iii) Then call transaction FBRA and will reset the clearing of the document passing BKPF-BELNR, BKPF-BUKRS and BKPF-GKAHR as obtained in (ii) above.
Step 3:- Then call transaction FBU8 and pass the data as below:-
Cross CC Doc. Number= Blank
Document Number = Payment Document Number (REGUH-VBLNR)
Company Code = Company code (REGUH-ZBUKR)
Fiscal Year = Fiscal Year (REGUH-ZALDT)
Reversal Reason, Posting Date and Posting period will be defaulted from the selection screen of out program.
Regards,
Gaurav
Maybe you are looking for
-
How do I sync 2 iTouches using the same ID?
I have one synced the the cloud with over 300 songs, but can't get the second one to sync (it only lists 12 songs), using the same ID.
-
In Range and Coerce, STRING
Hola a todo el mundo, La funcion "In Range and Coerce" para cadenas de caracteres, tiene un comportamiento que no acabo de entender. Si mi limite superior es z y mi limite inferior es a, si pongo d obtengo un PASS. Hasta aquí todo correcto. ¿Por qué
-
i am working on a project and i'm having a split screen. i've done the split screen with (crop and scale) on FCP but after i do that the video seems to have fuzzy edges. i've noticed on my external viewing monitor. what do i do to clean up the edges
-
What is role of a fucntional consultant in upgradation project
hia to all what is the role of a consultaant in upgradation project
-
Project libraries, polymorphic VIs, and access scope
I'm trying to be good and arrange all my VIs appropriately in project libraries*, marking each VI as public or private as I go. But I have found that, when a polymorphic VI is called from outside a project library, LabVIEW uses the access scope (publ