Problem in BDC Background
Hi
I am facing a problem in BDC ,call trasaction, for FB01
While the recording is done, the confi has BSEG-DMBTR field (Local Currecny)
and now its not there is the screen.
If i run my BDC is foreground, it says Field does not exist as sucess message and then i press enter and it let me post the record.
But in Background, its not letting me post the document.
wether its because , in background if any screen elements is message , being a succes message, it doesnot post ?
please help
Hi Munish singh,
Actually this error because of currency field.
1) declare the character variable equal to the dmbtr field output length. ex: data: v_dmbtr type c length 18.
2) before passing to the screen field.
3) move itab-dmbtr to v_dmbtr.
condence v_dmbtr.
4) And pass this v_dmbtr to the screen field ....
then your issue positively will resolved.
Dont forgot to Reward me points .....
All the very best....
Regards,
Sreenivasa sarma K.
Similar Messages
-
How to handle error messages in BDC background mode
Hi experts,
I got one problem in BDC, We are uploading data throgh BDC program,that program is calling Standard Batch Input programs,
Now we got one requirement, i.e., In some special cases we have to send one message as a error message.I handled this in foreground but, how to handle this in background.Hi,
if session is being used
automatically the log will begenereated in the sm35 transaction
but if call transaction is used
put all the error messages in the applicationserver using
open data set
and after the exectionof the program in the background
you have to run another progam which reads the data stroed inthe application server
that also with open data set only...
thanks & regards,
Venkatesh -
Dear Experts ,
I am doing a BDC for MB1B...
In my selection screen I am having,
Plant, Vendor No, text and and options to enter 5 different materials and its corresponding qauntity.
When the user enter the above details and execute , these details should trigger in MB1B
( using BDC background ).
My problem is i the final stage where the document needs to get saved, as in my case
its getting saved and also if the user enters only 1 material the loop should happen only once, but here
its getting looped with balnk values.
I have pasted my code below, please have look and advice me.
REFRESH: BDCDATA, MESSTAB.
PERFORM DYNPRO USING:
'X' 'SAPMM07M' '0400',
' ' 'RM07M-BWARTWA' '941',
' ' 'RM07M-WERKS' itab-WERKS,
' ' 'RM07M-LGORT' itab-LGORT,
' ' 'MKPF-BKTXT' itab-BKTXT,
' ' 'BDC_OKCODE' '/00',
'X' 'SAPMM07M' '0421',
' ' 'MSEGK-UMWRK' itab-WERKS,
' ' 'MSEGK-LIFNR' itab-VEND,
' ' 'BDC_OKCODE' 'NLE',
'X' 'SAPLKACB' '0002',
' ' 'BDC_OKCODE' '/00'.
LOOP AT ITAB1.
QAN = ITAB1-ERFMG.
QTY = QAN+6(6).
CNT = CNT + 1.
CN = CNT.
CONCATENATE 'MSEG-MATNR(' CN ')' INTO FN1.
CONCATENATE 'MSEG-ERFMG(' CN ')' INTO FN2.
PERFORM DYNPRO USING:
'X' 'SAPMM07M' '0421',
' ' FN1 ITAB1-MATNR,
' ' FN2 QTY,
' ' 'BDC_OKCODE' '/00',
'X' 'SAPLKACB' '0002',
' ' 'BDC_OKCODE' '=ENTE'.
ENDLOOP.
CALL TRANSACTION 'MB1B' USING BDCDATA MODE 'A'Hi Naga,
Thanks a lot for ur valuable advice !!
Now my document is getting posted , while using:
*CALL TRANSACTION 'MB1B' USING BDCDATA MODE 'A' *
but when I am using
*CALL TRANSACTION 'MB1B' USING BDCDATA MODE 'N' *
I am getting 'S' message No batch input data for screen SAPLKACB 0002.
I am pasting my code please have a look and advice me.
REFRESH: BDCDATA, MESSTAB.
PERFORM DYNPRO USING:
'X' 'SAPMM07M' '0400',
' ' 'RM07M-BWARTWA' '941',
' ' 'RM07M-WERKS' S_WERKS,
' ' 'RM07M-LGORT' S_LGORT,
' ' 'MKPF-BKTXT' S_BKTXT,
' ' 'BDC_OKCODE' '/00',
'X' 'SAPMM07M' '0421',
' ' 'MSEGK-UMWRK' S_WERKS,
' ' 'MSEGK-LIFNR' S_VEND,
' ' 'BDC_OKCODE' 'NLE',
'X' 'SAPLKACB' '0002',
' ' 'BDC_OKCODE' '/00'.
LOOP AT ITAB.
DELETE ITAB WHERE MATNR IS INITIAL.
QAN = ITAB-ERFMG.
QTY = QAN+6(6).
CNT = CNT + 1.
CN = CNT.
CONCATENATE 'MSEG-MATNR(' CN ')' INTO FN1.
CONCATENATE 'MSEG-ERFMG(' CN ')' INTO FN2.
PERFORM DYNPRO USING:
'X' 'SAPMM07M' '0421',
' ' FN1 ITAB-MATNR,
' ' FN2 QTY,
' ' 'BDC_OKCODE' '/00'.
ENDLOOP.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BU'.
PERFORM BDC_FIELD USING 'DKACB-FMORE'
'X'.
PERFORM DYNPRO USING 'X' 'SAPLKACB' '0002'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENTE'.
CALL TRANSACTION 'MB1B' USING BDCDATA MODE 'N'
MESSAGES INTO MESSTAB.
Rgds
Karthik -
Hi All,
I am facing a problem with bdc on va02. After hitting enter on the first screen it pops an info message "consider subsequent douments". It doesn't get recorded in recorded. Hence I am not able to run the transaction with no screen mode. Please help me to suppress the info message
NavinHi Navin,
These kind of messages and pop ups are precisely the reason why use of BDC for updating transactions is NOT advisable.
If you were to bypass such messages, you would have to put a check to see why the message appears (in this case probably because the sales document flow for the sales order in table VBFA has some documents) and then write a logic to either handle the message or not.
Instead i would recommend you use the BAPI functions provided by SAP to change the sales order.
Have a look the BAPI for sales order change attached to the business object BUS2012. For this goto transaction SWO1 and enter the BUS2012 business object. Then goto methods and look for the "change" method. Double click on the method and look at the BAPI used to implement the method. Go ahead and use this method in your program as against a BDC.
I am sure it will be a much better option.
Otherwise if you still want to proceed with a BDC, please debug at the point where the message/pop up appears to ascertain reason for the same and then incorporate the same check in your program to handle the pop up.
Regards,
Aditya -
Dear All,
Iam facing the problem in BDC Program..the code is..
LOOP AT IT_RECORD.
perform bdc_dynpro using 'SAPMF05A' '0300'.
perform bdc_field using 'BDC_CURSOR' 'RF05A-NEWKO'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_field using 'BSEG-WRBTR' IT_RECORD-vramt. "'100000'.
perform bdc_field using 'RF05A-NEWBS' it_record-pkey. "'50'.
perform bdc_field using 'RF05A-NEWKO' it_Record-vrac. "'24450024'.
perform bdc_field using 'DKACB-FMORE' 'X'.
perform bdc_dynpro using 'SAPLKACB' '0002'.
perform bdc_field using 'BDC_CURSOR' 'COBL-GSBER'.
perform bdc_field using 'BDC_OKCODE' '=ENTE'.
perform bdc_field using 'COBL-GSBER' it_record-gsber. "'KABA' .
COUNT = COUNT + 1.
WRITE:/ COUNT.
IF COUNT = 4.
perform bdc_dynpro using 'SAPMF05A' '0302'.
perform bdc_field using 'BDC_CURSOR'
'BSEG-GSBER'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BSEG-WRBTR' IT_RECORD-VRAMT. "'50000'.
perform bdc_field using 'BSEG-MWSKZ' '**'.
perform bdc_field using 'BSEG-GSBER' IT_RECORD-GSBER ."'kaba'.
perform bdc_field using 'BSEG-ZFBDT' '03.12.2007'.
perform bdc_dynpro using 'SAPMF05A' '0302'.
perform bdc_field using 'BDC_CURSOR'
'BSEG-WRBTR'.
perform bdc_field using 'BDC_OKCODE'
'=BS'.
perform bdc_field using 'BSEG-WRBTR' IT_RECORD-VRAMT. "'50,000.00'.
perform bdc_field using 'BSEG-MWSKZ'
perform bdc_field using 'BSEG-BUPLA' '1800'.
perform bdc_field using 'BSEG-GSBER' IT_RECORD-GSBER."'KABA'.
perform bdc_field using 'BSEG-ZFBDT' '03.12.2007'.
perform bdc_dynpro using 'SAPMF05A' '0700'.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWBS'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
CALL TRANSACTION 'F-02' USING BDCDATA MODE 'A'.
ELSE.
CONTINUE.
ENDIF.
ENDLOOP.
here iam using 4 line item(in text file) ..if count = 4 its not going to next screen, its repeating..its not simulating and posting the doc..
pls guide me friends.hi i send the code here, if u can understand clear it..
report ZBDC_FI_MVF_02 no standard page heading line-size 255.
DATA : BEGIN OF IT_RECORDS OCCURS 0,
BLDAT LIKE BKPF-BLDAT,
BLART LIKE BKPF-BLART,
BUKRS LIKE BKPF-BUKRS,
BUDAT LIKE BKPF-BUDAT,
MONAT LIKE BKPF-MONAT,
WAERS LIKE BKPF-WAERS,
NEWBS LIKE RF05A-NEWBS,
NEWKO LIKE RF05A-NEWKO,
END OF IT_RECORDS.
DATA : BEGIN OF IT_RECORD OCCURS 0,
VRAMT(15), " LIKE BSEG-WRBTR,
PKEY LIKE RF05A-NEWBS,
VrAC(10), " LIKE RF05A-NEWKO,
GSBER LIKE COBL-GSBER,
END OF IT_RECORD.
DATA : BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
DATE1 LIKE SY-DATUM,
DATE2 LIKE SY-DATUM,
LOOP(3).
DATA : COUNT(3).
start-of-selection.
PERFORM GET_DATA1.
PERFORM GET_DATA2.
PERFORM PROCESS_DATA.
FORM PROCESS_DATA.
perform bdc_dynpro using 'SAPMF05A' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWKO'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
date1 = it_RecordS-bldat.
CONCATENATE DATE16(2) DATE14(2) DATE1+0(4) INTO DATE1.
perform bdc_field using 'BKPF-BLDAT' DATE1. "'03.12.2007'.
perform bdc_field using 'BKPF-BLART' IT_RECORDS-BLART. "'SA'.
perform bdc_field using 'BKPF-BUKRS' IT_RECORDS-BUKRS. "'1800'.
date2 = it_RecordS-bUdat.
CONCATENATE DATE26(2) DATE24(2) DATE2+0(4) INTO DATE2.
perform bdc_field using 'BKPF-BUDAT' DATE2. "'03.12.2007'.
perform bdc_field using 'BKPF-MONAT' IT_RECORDS-MONAT. "'9'.
perform bdc_field using 'BKPF-WAERS' IT_RECORDS-WAERS. "'INR'.
perform bdc_field using 'FS006-DOCID' '*'.
perform bdc_field using 'RF05A-NEWBS' IT_RECORDS-NEWBS. "'40'.
perform bdc_field using 'RF05A-NEWKO' IT_RECORDS-NEWKO. "'24450024'.
*perform bdc_field using 'RF05A-NEWBS' IT_RECORDS-PKEY. "'50'.
*perform bdc_field using 'RF05A-NEWKO' IT_RECORDS-VENAC. "'24450024'.
*perform bdc_field using 'DKACB-FMORE' 'X'.
COUNT = '0'.
LOOP AT IT_RECORD.
perform bdc_dynpro using 'SAPMF05A' '0300'.
perform bdc_field using 'BDC_CURSOR' 'RF05A-NEWKO'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_field using 'BSEG-WRBTR' IT_RECORD-vramt. "'100000'.
perform bdc_field using 'RF05A-NEWBS' it_record-pkey. "'50'.
perform bdc_field using 'RF05A-NEWKO' it_Record-vrac. "'24450024'.
perform bdc_field using 'DKACB-FMORE' 'X'.
perform bdc_dynpro using 'SAPLKACB' '0002'.
perform bdc_field using 'BDC_CURSOR' 'COBL-GSBER'.
perform bdc_field using 'BDC_OKCODE' '=ENTE'.
perform bdc_field using 'COBL-GSBER' it_record-gsber. "'KABA' .
COUNT = COUNT + 1.
IF COUNT = 4.
clear count.
perform bdc_dynpro using 'SAPMF05A' '0302'.
perform bdc_field using 'BDC_CURSOR'
'BSEG-GSBER'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BSEG-WRBTR' IT_RECORD-VRAMT. "'50000'.
perform bdc_field using 'BSEG-MWSKZ' '**'.
perform bdc_field using 'BSEG-GSBER' IT_RECORD-GSBER ."'kaba'.
perform bdc_field using 'BSEG-ZFBDT' '03.12.2007'.
perform bdc_dynpro using 'SAPMF05A' '0302'.
perform bdc_field using 'BDC_CURSOR'
'BSEG-WRBTR'.
perform bdc_field using 'BDC_OKCODE'
'=BS'.
perform bdc_field using 'BSEG-WRBTR' IT_RECORD-VRAMT. "'50,000.00'.
perform bdc_field using 'BSEG-MWSKZ'
perform bdc_field using 'BSEG-BUPLA' '1800'.
perform bdc_field using 'BSEG-GSBER' IT_RECORD-GSBER."'KABA'.
perform bdc_field using 'BSEG-ZFBDT' '03.12.2007'.
perform bdc_dynpro using 'SAPMF05A' '0700'.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWBS'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
CALL TRANSACTION 'F-02' USING BDCDATA MODE 'A'.
ELSE.
CONTINUE.
ENDIF.
ENDLOOP.
perform bdc_dynpro using 'SAPMF05A' '0302'.
perform bdc_field using 'BDC_CURSOR'
'BSEG-GSBER'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BSEG-WRBTR' '50000'.
perform bdc_field using 'BSEG-MWSKZ' '**'.
perform bdc_field using 'BSEG-GSBER' 'kaba'.
perform bdc_field using 'BSEG-ZFBDT' '03.12.2007'.
perform bdc_dynpro using 'SAPMF05A' '0302'.
perform bdc_field using 'BDC_CURSOR'
'BSEG-WRBTR'.
perform bdc_field using 'BDC_OKCODE'
'=BS'.
perform bdc_field using 'BSEG-WRBTR' IT_RECORD-VRAMT. "'50,000.00'.
perform bdc_field using 'BSEG-MWSKZ' '**'.
perform bdc_field using 'BSEG-BUPLA' '1800'.
perform bdc_field using 'BSEG-GSBER' IT_RECORD-GSBER. "'KABA'.
perform bdc_field using 'BSEG-ZFBDT' '03.12.2007'.
perform bdc_dynpro using 'SAPMF05A' '0700'.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWBS'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_transaction using 'F-02'.
*CALL TRANSACTION 'F-02' USING BDCDATA MODE 'A'.
ENDFORM.
Start new screen *
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM.
Insert field *
FORM BDC_FIELD USING FNAM FVAL.
IF FVAL <> ' '.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDIF.
ENDFORM.
*& Form GET_DATA
form GET_DATA1 .
CALL FUNCTION 'UPLOAD'
EXPORTING
FILENAME = 'C:\MVF-02_1.txt'
FILETYPE = 'DAT'
TABLES
data_tab = IT_RECORDS
EXCEPTIONS
CONVERSION_ERROR = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3
NO_BATCH = 4
UNKNOWN_ERROR = 5
GUI_REFUSE_FILETRANSFER = 6
OTHERS = 7.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
endform. " GET_DATA
*& Form GET_DATA2
form GET_DATA2 .
CALL FUNCTION 'UPLOAD'
EXPORTING
FILENAME = 'C:\MVF-02_2.TXT'
FILETYPE = 'DAT'
TABLES
data_tab = IT_RECORD
EXCEPTIONS
CONVERSION_ERROR = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3
NO_BATCH = 4
UNKNOWN_ERROR = 5
GUI_REFUSE_FILETRANSFER = 6
OTHERS = 7
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
endform. " GET_DATA2 -
Hi I am having a problem in BDC Recording. My requirement is that when I input data in transaction fb02 to block the invoices, It shows a list of invoices. Now i need to double click that item(line) in which PK = 06 at runtime during bdc recording. During BDC recording it takes the line number on which we have clicked which is constant but i want it dynamic that if item 1 is having PK=6, that line should be double clicked and if item 3 is having PK=6, the third item should be double clicked to open another screen. Kindly help me... Thanks in advance.
Hi Ravi,
While writing your code that is in your code you know which line number is having the PK = 06, then you can use the same line number and add the code for double click after that.
Regards,
Atish -
Problem in bdc session method for tcode FS00
Hi Experts,
problem in bdc session method, when i run this program no output is shown.
Even it is not calling the transaction.
code as follows.
*& Report Z_GL_MASTER
*& CATEGORY = BDC.
*& DESCRIPTION = UPLOADING G/L MASTER RECORDS.
*& TECHNICAL CONST = FRANCIS REDDY.
*& FUNTIONAL CONST = FICO.
REPORT Z_GL_MASTER.
*& Internal Table
DATA : BEGIN OF IT_UPLOAD OCCURS 0,
SAKNR LIKE GLACCOUNT_SCREEN_KEY-SAKNR, " ACCOUNT NUMBER.
BUKRS LIKE GLACCOUNT_SCREEN_KEY-BUKRS, " COMPANY CODE.
KTOKS LIKE GLACCOUNT_SCREEN_COA-KTOKS, " ACCOUNT GROUP.
XPLACCT LIKE GLACCOUNT_SCREEN_COA-XPLACCT, " P&L STATEMEMENT.
GVTYP LIKE GLACCOUNT_SCREEN_COA-GVTYP, " P&L STATEMENT TYPE.
XBILK LIKE GLACCOUNT_SCREEN_COA-XBILK, " BALANCE SHEET STATEMENT
SHORT LIKE GLACCOUNT_SCREEN_COA-TXT20_ML, " SHORT TEXT.
LONG LIKE GLACCOUNT_SCREEN_COA-TXT50_ML, " LONG TEXT.
WAERS LIKE GLACCOUNT_SCREEN_CCODE-WAERS, " ACCOUNT CURRENCY.
XSALH LIKE GLACCOUNT_SCREEN_CCODE-XSALH, " ONLY BALANCES IN LOCAL CURRENCY.
MITKZ LIKE GLACCOUNT_SCREEN_CCODE-MITKZ, " RECONCILATION ACCOUNT FOR ACCOUNT TYPEGLACCOUNT_SCREEN_CCODE-MITKZ
XOPVW LIKE GLACCOUNT_SCREEN_CCODE-XOPVW, " OPEN ITEM MANAGEMENT.
XKRES LIKE GLACCOUNT_SCREEN_CCODE-XKRES, " LINE ITEM DISPLAY.
ZUAWA LIKE GLACCOUNT_SCREEN_CCODE-ZUAWA, " SORT KEY.
FSTAG LIKE GLACCOUNT_SCREEN_CCODE-FSTAG, " FIELD STATUS GROUP.
XGKON LIKE GLACCOUNT_SCREEN_CCODE-XGKON, " RELAVENT CASH FLOW.
END OF IT_UPLOAD.
*& Internal Table FOR BDC DATA.
DATA : IT_BDCDATA TYPE BDCDATA OCCURS 0 WITH HEADER LINE.
*& DATA DECLARATIONS.
DATA : V_FILE LIKE RLGRAP-FILENAME.
*& SELECTION SCREEN.
PARAMETER : P_FILE LIKE V_FILE.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
PERFORM GET_FILENAME.
START-OF-SELECTION.
PERFORM UPLOAD_DATA.
PERFORM BDCDATA_OPEN.
PERFORM BDC_POPULATE.
PERFORM BDC_CLOSE.
*& Form GET_FILENAME
form GET_FILENAME .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'P_FILE'
IMPORTING
FILE_NAME = P_FILE.
endform. " GET_FILENAME
*& Form UPLOAD_DATA
form UPLOAD_DATA .
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
FILENAME = P_FILE
FILETYPE = 'DAT'
TABLES
data_tab = IT_UPLOAD.
endform. " UPLOAD_DATA
*& Form BDCDATA_OPEN
FORM FOR BDC_OPEN_GROUP.
form BDCDATA_OPEN .
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = 'GLMASTER'
HOLDDATE = SY-DATUM
KEEP = 'X'
USER = SY-UNAME.
endform. " BDCDATA_OPEN
*& Form BDC_POPULATE
POPULATING BDC DATA .
form BDC_POPULATE .
loop at it_upload.
PERFORM BDC_SUB1 USING 'X' 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
PERFORM BDC_SUB2 USING 'BDC_OKCODE' '=ACC_CRE'.
PERFORM BDC_SUB2 USING 'BDC_CURSOR' 'GLACCOUNT_SCREEN_KEY-SAKNR'.
PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_KEY-SAKNR' IT_UPLOAD-SAKNR.
PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_KEY-BUKRS' IT_UPLOAD-BUKRS.
PERFORM BDC_SUB1 USING 'X' 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
PERFORM BDC_SUB2 USING 'BDC_OKCODE' '=2102_GROUP'.
PERFORM BDC_SUB2 USING 'BDC_CURSOR' 'GLACCOUNT_SCREEN_COA-KTOKS'.
PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_COA-KTOKS' IT_UPLOAD-KTOKS.
PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_COA-XPLACCT' IT_UPLOAD-XPLACCT.
PERFORM BDC_SUB1 USING 'X' 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
PERFORM BDC_SUB2 USING 'BDC_OKCODE' '=2102_BS_PL'.
PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_COA-GVTYP' IT_UPLOAD-GVTYP.
PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_COA-XBILK' IT_UPLOAD-XBILK.
PERFORM BDC_SUB1 USING 'X' 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
PERFORM BDC_SUB2 USING 'BDC_CURSOR' 'GLACCOUNT_SCREEN_COA-TXT20_ML'.
PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_COA-TXT20_ML' IT_UPLOAD-SHORT.
PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_COA-TXT50_ML' IT_UPLOAD-LONG.
PERFORM BDC_SUB1 USING 'X' 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
PERFORM BDC_SUB2 USING 'BDC_OKCODE' '=TAB02'.
PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_CCODE-WAERS' IT_UPLOAD-WAERS.
PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_CCODE-XSALH' IT_UPLOAD-XSALH.
PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_CCODE-MITKZ' IT_UPLOAD-MITKZ.
PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_CCODE-XOPVW' IT_UPLOAD-XOPVW.
PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_CCODE-XKRES' IT_UPLOAD-XKRES.
PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_CCODE-ZUAWA' IT_UPLOAD-ZUAWA.
PERFORM BDC_SUB1 USING 'X' 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
PERFORM BDC_SUB2 USING 'BDC_OKCODE' '=TAB03'.
PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_CCODE-FSTAG' IT_UPLOAD-FSTAG.
PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_CCODE-XGKON' IT_UPLOAD-XGKON.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'FS00'
TABLES
dynprotab = IT_BDCDATA.
endloop.
endform. " BDC_POPULATE
*& Form BDC_CLOSE
FORM FOR CLOSING BDC_GROUP
form BDC_CLOSE .
CALL FUNCTION 'BDC_CLOSE_GROUP'.
endform. " BDC_CLOSE
*& Form BDC_SUB1
FORM FOR BDCDATA.
form BDC_SUB1 USING A B C.
CLEAR IT_BDCDATA.
IT_BDCDATA-DYNBEGIN = A.
IT_BDCDATA-PROGRAM = B.
IT_BDCDATA-DYNPRO = C.
APPEND IT_BDCDATA.
endform. " BDC_SUB1
*& Form BDC_SUB2
text
form BDC_SUB2 USING A B.
CLEAR IT_BDCDATA.
IT_BDCDATA-FNAM = A.
IT_BDCDATA-FVAL = B.
APPEND IT_BDCDATA.
endform. " BDC_SUB2
Points will be rewarded.
Thanks in advance.
Francis.Hi,
Once the program is executed..It will a BDC session..
THen you have to use the transaction SM35..To process the BDC session..
Thanks,
Naren -
Syntax problem with BDC perform
Dear Friends,
small problem in BDC Perform syntax but I am not getting how to do this..
I have writen the code like this in my BDC byt its throughing the error...Here I want to do the validation on each and every field. I mean If that field values are empty i don't want to change the SAP field value.
my code is like this.
PERFORM dynpro USING:
'X' 'SAPLMGMM' '0080'.
IF NOT p_int_matl-werks IS INITIAL.
' ' 'RMMG1-WERKS' p_int_matl-werks.
ENDIF.
IF NOT p_int_matl-werks IS INITIAL.
' ' 'RMMG1-LGORT' p_int_matl-lgort.
ENDIF.
' ' 'BDC_OKCODE' '/00'.
pls give me exact code how to do this...
Thanks
SridharHi sridher,
1. this kind of syntax ie. IF will give error.
2. If ur requirement is : blank value should not be put in bdc,
3. then one way is to change / write the logic
inside the form itself.
4. ie. inside the routine/form DYNPRO.
5. So, it will be then general for all performs.
regards,
amit m. -
Problem in BDC while going back to previous screen in FB60
Dear All,
I have a problem in BDC my BDc stops when it tries to go back to previous screen then manually i have to click on the back button then it gets posted. the previous screen recording for FB60 is
SAPMSSY0 0120 X
BDC_CURSOR 16/32
BDC_OKCODE =&IC1
When we do back by clicking on the screen is not getting recorded. Kindly suggest a suitable Solution for the same.
ReagrdsFB60 is an EnjoySAP transaction and not well suited to batch input (look for notes). Better to use a BAPI or batch input on FB01.
Rob -
Hi Experts,
I m facing a problem while doing the BDC for F-32, i want to make Normal OI check field as Uncheck through BDC , while recording i have uncheck the check box and the field value appears to be ' ' in the recording , but when i process the BDC the field remains CHECKED by Default.
pls help how can i unchecked the field.
I have tried it by puting the value of the field 'X' also but still it remains checked .
pls help me how can i UNCHECKED the Normal OI screen field .Hi
The output format of an amonut is managed by the currency, you shouldn't have any particular problem,
In BDC program the field to be used to transfer the amount has to be char, so probably the easier solution is to write it into the bdc field in according to the currency:
WRITE <AMOUNT> CURRENCY <CUURENCY> TO <BDC FIELD>.
Max -
Problem in BDC for F-02 -- Currency Problem
Dear Experts,
I have written a BDC for F-02 to upload the opening balances of vendors.
Problem is , this BDC is for Libya country, where decimal places is 3.
Now when i run my BDC, if the amount is 22.54, it will upload it as 22.540, which is ok, but if the amount is 22.543, it upload it as 22.540 instead of 22.543.
can one provide some guidance in this....
Regards,
MaverickHi
The output format of an amonut is managed by the currency, you shouldn't have any particular problem,
In BDC program the field to be used to transfer the amount has to be char, so probably the easier solution is to write it into the bdc field in according to the currency:
WRITE <AMOUNT> CURRENCY <CUURENCY> TO <BDC FIELD>.
Max -
Hi all,
1) i got a problem in BDC i.e suppose i have a flat file that is having 10 records
but my problem is i want to update first 8 records only using Call transaction
so where will do this and what is the logic for this . for both cases i.e Call transaction & session methods?
good rewards for replay,
regards,
sudharsanOnce you upload the file into an internl table,
delete the last two rows from the internal table.
call function GUI_UPLOAD
describe table itab lines v_lines.
delete table itab index v_lines.
v_lines = v_lines - 1.
delete table itab index v_lines.
then do your call transaction or BDC session method.
Regards,
Ravi -
PROBLEM IN BDC F-04 --NO PAGE DOWN
HI
Experts,
Getting problem in bdc for f-04 , The data is split on basis of
business area (gsber) , and for one business area there are more
then 2000 document number, till the screen of doc.no the data is
coming into fields but i have to put all the doc number for that
b.area. And only i can enter 16 doc.no as there is no page down i
have to enter so that it takes another 16 doc.no .
but i tried it by at new command and then i tried it by on chage of
but it picks only first doc.no its not piclking all doc.no.
LOOP AT i_final.
MOVE i_final TO wa_itab.
ON CHANGE OF wa_itab-gsber .
CLEAR w_count.
PERFORM bdc_dynpro USING 'SAPMF05A' '0122'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-NEWKO'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BKPF-BLDAT'
wa_itab-bldat . "'27.07.2006'.
PERFORM bdc_field USING 'BKPF-BLART'
wa_itab-blart. "'SA'.
PERFORM bdc_field USING 'BKPF-BUKRS'
wa_itab-bukrs. "'NPIL'.
PERFORM bdc_field USING 'BKPF-BUDAT'
wa_itab-budat. "'27.07.2006'.
PERFORM bdc_field USING 'BKPF-WAERS'
wa_itab-waers. "'INR'.
PERFORM bdc_field USING 'BKPF-XBLNR'
wa_itab-xblnr. "'INR'.
PERFORM bdc_field USING 'BKPF-BKTXT'
wa_itab-bktxt. "'INR'.
PERFORM bdc_field USING 'RF05A-XPOS1(04)'
wa_itab-xpos1.
PERFORM bdc_field USING 'RF05A-NEWBS'
wa_itab-newbs. "'50'.
PERFORM bdc_field USING 'RF05A-NEWKO'
wa_itab-newko. "'9991010'.
PERFORM bdc_dynpro USING 'SAPMF05A' '0300'.
PERFORM bdc_field USING 'BDC_CURSOR'
'BSEG-WRBTR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=PA'.
PERFORM bdc_field USING 'BSEG-WRBTR'
wa_itab-wrbtr. "'826532.58'.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_CURSOR'
'COBL-FIPOS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
PERFORM bdc_field USING 'COBL-GSBER'
wa_itab-gsber. "'1101'.
PERFORM bdc_field USING 'COBL-PRCTR'
wa_itab-prctr. "'2000'.
PERFORM bdc_dynpro USING 'SAPMF05A' '0710'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-XPOS1(03)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=PA'.
PERFORM bdc_field USING 'RF05A-AGKON'
wa_itab-agkon. "'2810200'.
PERFORM bdc_field USING 'RF05A-XPOS1(03)'
'X'.
ENDON.
PERFORM bdc_dynpro USING 'SAPMF05A' '0731'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-SEL01(06)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=PA'.
w_count = w_count + 1.
CONCATENATE 'RF05A-SEL01(' w_count ')' INTO w_bdc.
PERFORM bdc_field USING w_bdc
wa_itab-sel01.
IF w_count >= 16.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
w_count = 0.
ENDIF.
ENDON.
AT END OF gsber.
*IF W_FLAG = 'X'.
PERFORM bdc_dynpro USING 'SAPDF05X' '3100'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-ABPOS'.
PERFORM bdc_field USING 'RF05A-ABPOS'
'1'.
PERFORM bdc_transaction USING 'F-04'.
ENDAT. "At end of
*ENDIF.
ENDLOOP.
PERFORM close_group.Iam doing a bdc for F-04 (post with clearing header date)
i got a file in which the data is splited on business area wise,
and when i enter the details on first screen
with post key 40 and enter after entering the details here like
busines area profit cenrter i have to click
process open item .
here i have to select the doc.no and enter acct no and again
have to process the open item .. where exactly my problem is
when i process it i will get ascreen in which
the doc.no are
from to
and i can enter only 16 doc no here but where as there are more
then 50 doc number for one businees area in file ..there is
HOPE U GOT MY POINT NOW .
REGARDS -
What do I do when I create a pdf and it says fatal error, there is a problem with the background task
see Adobe Community: File Crashing on Output - printing/PDF/other
-
Problem setting JComboBox background in Nimbus
I am having a problem setting the background component of a JComboBox when using the Nimbus L&F. The call to JComboBox.setBackground() changes the background of both the content area and the button. I do not want the background color of the button to be changed. I reviewed a number of similar posts in the forums and found a suggested change that results in the button keeping its original background. The code for the suggested change is shown below:
JComboBox bandComboBox;
bandComboBox.setBackground(Color.YELLOW);
// This next line of code changes the background color of the button back to its original value
bandComboBox.getComponent(0).setBackground(UIManager.getColor("control"));
This change did not work for the Nimbus L&F but it did work for the Metal L&F. I really need a solution for the Nimbus L&F. Any suggestions would be greatly appreciated.
I am currently running java 1.6_u13.
Thanks!
CaseyExcept for the actual arrow, the combo box arrow button doesn't paint anything in Nimbus. The highlight, the border, and the gradient background of the arrow button are drawn by the combo box painter. Hence, when you set the background color on the combo box, it also affects the look of the arrow button.
So I thought, what if I made the arrow button opaque? Well.. it does become its own color, but it essentially becomes a giant solid-color square appended to the end of the combo box. Not exactly what we were looking for.
So then I thought that maybe we could use the "Nimbus.Overrides" feature to override the colors on the combo box. Turns out you can't do that. The feature doesn't apply to colors. To change the base colors, you would have to go through the UIManager, and in effect change colors for all the components. Plus, the JComboBox uses colors derived from the same core color - "nimbusBase" - to paint the background of the combo box and the arrow button. So if you change "nimbusBase" to yellow then the whole combo box is still effected (although the results admittedly look better then setBackground(Color.yellow) since the gradient effects are retained).
Anyway, after fiddling around with some ideas, this is what I came up with.
import javax.swing.*;
import javax.swing.UIManager.LookAndFeelInfo;
import java.awt.Color;
import java.awt.Graphics;
public class Test {
public static void main(String[] args) throws Exception {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
public static void createAndShowGUI(){
try {
for (LookAndFeelInfo laf : UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(laf.getName())) {
UIManager.setLookAndFeel(laf.getClassName());
} catch (Exception e) {
e.printStackTrace();
}finally {
if(!("Nimbus".equals(UIManager.getLookAndFeel().getName()))) {
System.err.println("Could not find/install Nimbus LAF!");
System.exit(-1);
SpecialNimbusComboBox specialBox = new SpecialNimbusComboBox(new String[] {
"One","Two","Three"
specialBox.boxColor ; = Color.yellow;
specialBox.arrowBoxColor = Color.red;
JComboBox regularBox = new JComboBox(new String[] {
"One","Two","Three"
JFrame frame = new JFrame();
frame.setLayout(new java.awt.FlowLayout());
frame.add(specialBox);
frame.add(regularBox);
frame.setSize(250,150);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
public static class SpecialNimbusComboBox extends JComboBox{
public Color boxColor;
public Color arrowBoxColor;
private boolean ignoreRepaint;
public SpecialNimbusComboBox() {}
public SpecialNimbusComboBox(ComboBoxModel aModel) {super(aModel);}
public SpecialNimbusComboBox(Object[] items) {super(items);}
@Override
public void paintComponent(Graphics g) {
ignoreRepaint = true;
try {
java.awt.Rectangle b = getComponent(0).getBounds();
g.setClip(0, 0, getWidth() - b.width, getHeight());
setBackground(boxColor);
super.paintComponent(g);
g.setClip(b.x, b.y, b.width, b.height);
setBackground(arrowBoxColor);
super.paintComponent(g);
} finally {
ignoreRepaint = false;
@Override
public void repaint() {
if(!ignoreRepaint)
super.repaint();
}
Maybe you are looking for
-
i'm sure this is inevitable since the battery continues to work even when the computer is sleeping. however, the whole thing will drain in less than six hours when sleeping. that's way, way faster than any of the powerbooks i've owned before. what gi
-
I phone 5c on the app store update part where it says updates , then purchased not on this device how do i clear it it wont let me delete the history of the apps i bouht on a different i phone but same log in details
-
Can I de-install ios 8.0.2 from my iphone 5s
can I un-install ios 8.0.2 from my iphone 5s
-
Hello there, I need a clarification.. I have 2 tables State_info State_id Primary key,State_name County_info COunty_id primary key, County_name,state_id, constraint cfk(state_id) references state_info I want to write a single query such that if the u
-
Error 101 ~Photoshop CS5.1
I have the same problem except I have Vista 32-bit operating system. On my C: drive, I have 85.6 GB of space left. (Which is more than enough space) And on my D: drive, I have 106GB out of 106GB left. I had already installed Photoshop CS5.1 before bu