‎2011 Mar 11 9:12 AM
Hello Forum,
I have created a BDC for T-code FBCJ in order for the document to be posted.....
The problem with my program is that when line item is uploaded into the required fields and when the OK-CODE = SAVE.
It is popping up a Information window " please select at least one entry".
But where in the line item entered in the required fields is already selected.
After which when you click OK on the information window, the entered line item is erased.
below is the code for the required BDC:
-
MY CODE FOR THE BDC----
report ZFBCJ
no standard page heading line-size 255.
include bdcrecx1.
data: begin of it_data occurs 0,
transact_name(25),
h_payments(15),
gl_account(10),
POSITION_TEXT(50),
DOCUMENT_NUMBER(16),
ALLOC_NMBR(18),
KOSTL(19),
PRCTR(10),
TEXT1(50),
end of it_data.
parameters:p_FILE LIKE IBIPPARMS-PATH obligatory.
DATA: P1_FILE TYPE STRING.
data: it_data1 like it_data occurs 0 with header line.
----
AT Selection-screen
----
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_FILE.
P1_FILE = P_FILE.
start-of-selection.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = p1_file
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
VIRUS_SCAN_PROFILE =
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
HEADER =
tables
data_tab = it_data
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
it_data1[] = it_data[].
perform open_group.
DATA: V_PAY(15) TYPE C.
LOOP AT IT_DATA1.
refresh bdcdata.
perform bdc_dynpro using 'SAPMFCJ0' '0100'.
perform bdc_field using 'BDC_OKCODE'
'=CHCJ'.
perform bdc_field using 'F_DISPLAY_PERIOD_LO'
'01.06.2010'.
perform bdc_field using 'F_DISPLAY_PERIOD_HI'
'30.06.2010'.
perform bdc_field using 'BDC_CURSOR'
'ISCJ_E_POSTINGS-TRANSACT_NAME(18)'.
perform bdc_dynpro using 'SAPMFCJ0' '0050'.
perform bdc_field using 'BDC_CURSOR'
'TCJ_C_JOURNALS-CAJO_NUMBER'.
perform bdc_field using 'BDC_OKCODE'
'=OK50'.
perform bdc_field using 'TCJ_C_JOURNALS-COMP_CODE'
'4100'.
perform bdc_field using 'TCJ_C_JOURNALS-CAJO_NUMBER'
'4120'.
perform bdc_dynpro using 'SAPMFCJ0' '0100'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'F_DISPLAY_PERIOD_LO'
'01.06.2010'.
perform bdc_field using 'F_DISPLAY_PERIOD_HI'
'30.06.2010'.
perform bdc_field using 'BDC_CURSOR'
'ISCJ_E_POSTINGS-TRANSACT_NAME(18)'.
perform bdc_field using 'ISCJ_E_POSTINGS-TRANSACT_NAME(18)'
it_data1-transact_name. " 'EXPENSES/GL'.
v_pay = it_data1-h_payments.
WRITE V_PAY TO V_PAY RIGHT-JUSTIFIED.
perform bdc_field using 'ISCJ_E_POSTINGS-H_PAYMENTS(18)'
v_pay. " '70.00'.
perform bdc_field using 'ISCJ_E_POSTINGS-GL_ACCOUNT(18)'
it_data1-gl_account. " '4140000'.
perform bdc_field using 'ISCJ_E_POSTINGS-POSITION_TEXT(18)'
it_data1-position_text. " 'test entry'.
perform bdc_field using 'ISCJ_E_POSTINGS-DOCUMENT_NUMBER(18)'
it_data1-document_number. "'cash pmt'.
perform bdc_field using 'ISCJ_E_POSTINGS-ALLOC_NMBR(18)'
it_data1-alloc_nmbr. " 'party name'.
perform bdc_field using 'ISCJ_E_POSTINGS-KOSTL(18)'
it_data1-kostl. " '41000100'.
perform bdc_field using 'ISCJ_E_POSTINGS-PRCTR(18)'
it_data1-prctr. " '4100'.
perform bdc_field using 'ISCJ_E_POSTINGS-TEXT1(18)'
it_data1-text1. " 'DFD'.
perform bdc_field using 'F_LINE_SEL(18)'
'X'.
perform bdc_dynpro using 'SAPMFCJ0' '0100'.
perform bdc_field using 'BDC_OKCODE'
'=SAVE'.
perform bdc_field using 'F_DISPLAY_PERIOD_LO'
'01.06.2010'.
perform bdc_field using 'F_DISPLAY_PERIOD_HI'
'30.06.2010'.
perform bdc_field using 'BDC_CURSOR'
'ISCJ_E_POSTINGS-TRANSACT_NAME(18)'.
*perform bdc_field using 'F_LINE_SEL(18)'
'X'.
******************NEW DATA*****************************
perform bdc_field using 'ISCJ_E_POSTINGS-TRANSACT_NAME(18)'
it_data1-transact_name. " 'EXPENSES/GL'.
v_pay = it_data1-h_payments.
WRITE V_PAY TO V_PAY RIGHT-JUSTIFIED.
perform bdc_field using 'ISCJ_E_POSTINGS-H_PAYMENTS(18)'
v_pay. " '70.00'.
perform bdc_field using 'ISCJ_E_POSTINGS-GL_ACCOUNT(18)'
it_data1-gl_account. " '4140000'.
perform bdc_field using 'ISCJ_E_POSTINGS-POSITION_TEXT(18)'
it_data1-position_text. " 'test entry'.
perform bdc_field using 'ISCJ_E_POSTINGS-DOCUMENT_NUMBER(18)'
it_data1-document_number. "'cash pmt'.
perform bdc_field using 'ISCJ_E_POSTINGS-ALLOC_NMBR(18)'
it_data1-alloc_nmbr. " 'party name'.
perform bdc_field using 'ISCJ_E_POSTINGS-KOSTL(18)'
it_data1-kostl. " '41000100'.
perform bdc_field using 'ISCJ_E_POSTINGS-PRCTR(18)'
it_data1-prctr. " '4100'.
perform bdc_field using 'ISCJ_E_POSTINGS-TEXT1(18)'
it_data1-text1. " 'DFD'.
perform bdc_field using 'F_LINE_SEL(18)'
'X'.
perform bdc_field using 'BDC_OKCODE'
'=save'.
**************END NEW DATA*****************************
perform bdc_dynpro using 'SAPMFCJ0' '0100'.
perform bdc_field using 'BDC_OKCODE'
'=POST'.
perform bdc_field using 'F_DISPLAY_PERIOD_LO'
'01.06.2010'.
perform bdc_field using 'F_DISPLAY_PERIOD_HI'
'30.06.2010'.
perform bdc_field using 'BDC_CURSOR'
'ISCJ_E_POSTINGS-TRANSACT_NAME(18)'.
*perform bdc_field using 'F_LINE_SEL(14)'
'X'.
perform bdc_transaction using 'FBCJ'.
ENDLOOP.
perform close_group.
Edited by: santosh reddy.k on Mar 11, 2011 10:16 AM
‎2011 Mar 11 9:26 AM
Hello Forum,
Sorry for the inconvenience with the post... this is my first post so didn't know how post it properly... please bear with it.
‎2011 Mar 11 9:26 AM
Hello Forum,
Sorry for the inconvenience with the post... this is my first post so didn't know how post it properly... please bear with it.
‎2011 Mar 11 10:20 AM
‎2012 Dec 22 9:24 AM
FBCJ Upload : Updating sucessfully
Below is my code ::
FBCJ Upload : Updating sucessfully , use this code
no standard page heading line-size 255.
****************************************************** Data Declaration 1 *********Begin Of
data: begin of IT_FBCJ occurs 0,
BUDAT type ISCJ_E_POSTINGS-POSTING_DATE,
BLDAT type ISCJ_E_POSTINGS-DOCUMENT_DATE,
BUKRS type TCJ_C_JOURNALS-COMP_CODE,
CJNR type TCJ_C_JOURNALS-CAJO_NUMBER,
TRAN type TCJ_TRANSACTIONS-TRANSACT_NUMBER,
AMT(16),
DOCNR type ISCJ_E_POSTINGS-DOCUMENT_NUMBER,
KOSTL type ISCJ_E_POSTINGS-KOSTL,
PRCTR type ISCJ_E_POSTINGS-PRCTR,
TEXT type ISCJ_E_POSTINGS-POSITION_TEXT,
PERNR type ISCJ_E_POSTINGS-PERNR,
CURRENCY type BAPI_CJ_HEADER-CURRENCY ,
end of IT_FBCJ.
data: BDCDATA type table of BDCDATA with header line,
IT_BDCMSGCOLL type table of BDCMSGCOLL with header line,
ITAB type table of ALSMEX_TABLINE with header line.
data: HEADER type BAPI_CJ_HEADER,
HEADER1 TYPE TCJ_C_JOURNALS ,
ITEMS type table of BAPI_CJ_ITEMS with header line,
ITEMS1 type table of ISCJ_POSTINGS with header line,
TCJ TYPE TABLE OF TCJ_CPD with header line ,
POSTING TYPE TABLE OF ISCJ_POSTINGS WITH HEADER LINE ,
TAX TYPE TABLE OF TCJ_WTAX_ITEMS WITH HEADER LINE ,
IT_RETURN type BAPIRET2 occurs 0 with header line.
data: V_COUNT(2) type N,
V_FLD(25) type C,
V_NUMBER type BAPI_CJ_HEADER-CAJO_NUMBER,
V_GJAHR type BAPI_CJ_KEY-FISC_YEAR,
V_POSTNO type BAPI_CJ_KEY-POSTING_NUMBER,
CURR type BAPI_CJ_HEADER-CURRENCY .
****************************************************** Data Declaration 1 *********End Of
****************************************************** Data Declaration 2 *********Begin Of
*&----
**&
**& SELECTION-SCREEN
*&----
selection-screen : begin of block B1 with frame title TEXT-001.
parameters : P_FILE type RLGRAP-FILENAME.
selection-screen : end of block B1.
*selection-screen : begin of block B2 with frame title TEXT-002.
*parameters : R1 radiobutton group RAD1 default 'X',
* R2 radiobutton group RAD1.
*selection-screen : end of block B2.
*&----
**&
**& AT SELECTION-SCREEN
*&----
at selection-screen on value-request for P_FILE.
call function 'KD_GET_FILENAME_ON_F4'
exporting
PROGRAM_NAME = SYST-REPID
DYNPRO_NUMBER = SYST-DYNNR
changing
FILE_NAME = P_FILE
exceptions
MASK_TOO_LONG = 1
others = 2.
if SY-SUBRC <> 0.
endif.
*
*&----
**&
**& START-OF-SELECTION.
*&----
start-of-selection.
perform UPLOAD.
perform BAPI.
* perform DATA_EXRACTION .
perform DATA_EXRACTION1 .
PERFORM BAPI_UPDATE .
*&----
**&
**& END-OF-SELECTION.
*&----
end-of-selection.
*&----
**& Form UPLOAD
*&----
form UPLOAD .
call function 'ALSM_EXCEL_TO_INTERNAL_TABLE'
exporting
FILENAME = P_FILE
I_BEGIN_COL = '1'
I_BEGIN_ROW = '3'
I_END_COL = '12'
I_END_ROW = '65536'
tables
INTERN = ITAB
exceptions
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2
others = 3.
if SY-SUBRC <> 0.
endif.
loop at ITAB.
case ITAB-COL.
when '0001'.
move ITAB-VALUE to IT_FBCJ-BUDAT.
when '0002'.
move ITAB-VALUE to IT_FBCJ-BLDAT.
when '0003'.
move ITAB-VALUE to IT_FBCJ-BUKRS.
when '0004'.
move ITAB-VALUE to IT_FBCJ-CJNR.
when '0005'.
move ITAB-VALUE to IT_FBCJ-TRAN.
when '0006'.
move ITAB-VALUE to IT_FBCJ-AMT.
when '0007'.
move ITAB-VALUE to IT_FBCJ-DOCNR.
when '0008'.
move ITAB-VALUE to IT_FBCJ-KOSTL.
when '0009'.
move ITAB-VALUE to IT_FBCJ-PRCTR.
when '0010'.
move ITAB-VALUE to IT_FBCJ-TEXT.
when '0011'.
move ITAB-VALUE to IT_FBCJ-PERNR.
when '0012' .
move itab-value to IT_FBCJ-CURRENCY .
endcase.
at end of ROW.
append IT_FBCJ.
clear IT_FBCJ.
endat.
endloop.
sort IT_FBCJ by BUDAT.
loop at IT_FBCJ.
if SY-TABIX eq 1.
HEADER-COMP_CODE = IT_FBCJ-BUKRS.
HEADER1-COMP_CODE = HEADER-COMP_CODE.
HEADER-CAJO_NUMBER = IT_FBCJ-CJNR.
HEADER1-CAJO_NUMBER = HEADER-CAJO_NUMBER.
HEADER-REF_DOC_NO = IT_FBCJ-DOCNR.
HEADER-CURRENCY = IT_FBCJ-CURRENCY .
HEADER1-CURRENCY = IT_FBCJ-CURRENCY .
concatenate IT_FBCJ-BUDAT+4(4) IT_FBCJ-BUDAT+2(2) IT_FBCJ-BUDAT+0(2) into HEADER-PSTNG_DATE.
concatenate IT_FBCJ-BLDAT+4(4) IT_FBCJ-BLDAT+2(2) IT_FBCJ-BLDAT+0(2) into HEADER-DOC_DATE.
endif.
V_COUNT = V_COUNT + 1.
ITEMS-POSITION_NUMBER = V_COUNT.
ITEMS-TRANSACT_NUMBER = IT_FBCJ-TRAN.
* if R1 eq 'X'.
ITEMS-P_PAYMENTS = IT_FBCJ-AMT.
* else.
* ITEMS-P_RECEIPTS = IT_FBCJ-AMT.
* endif.
ITEMS-COSTCENTER = IT_FBCJ-KOSTL.
ITEMS-PROFIT_CTR = IT_FBCJ-PRCTR.
ITEMS-POSITION_TEXT = IT_FBCJ-TEXT.
ITEMS-PERSON_NO = IT_FBCJ-PERNR.
append ITEMS.
endloop.
endform. " UPLOAD
*&----
**& Form BAPI
*&----
form BAPI .
call function 'BAPI_CASHJOURNALDOC_CREATE'
exporting
HEADER = HEADER
* TESTRUN =
importing
* COMPANY_CODE =
CASH_JOURNAL_NUMBER = V_NUMBER
FISCAL_YEAR = V_GJAHR
CASH_JOURNAL_DOC_NO = V_POSTNO
tables
ITEMS = ITEMS
* TAX_ITEMS =
* CPD_ITEMS =
* WTAX_ITEMS =
* EXTENSION_IN =
RETURN = IT_RETURN .
* IF IT_RETURN-TYPE IS NOT INITIAL.
commit work.
wait up to 10 seconds.
* endif.
*Commiting the work using Commit Work
* call function 'BAPI_TRANSACTION_COMMIT'
**EXPORTING
** WAIT = '10'
*importing
* RETURN = IT_RETURN
.
* loop at IT_RETURN.
* write: / IT_RETURN-TYPE,
* IT_RETURN-ID ,
* IT_RETURN-NUMBER,
* IT_RETURN-MESSAGE.
* endloop.
endform. "BAPI
*&---------------------------------------------------------------------*
*& Form DATA_EXRACTION
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form DATA_EXRACTION .
* types : begin of GS_DOC ,
* COMP_CODE type TCJ_DOCUMENTS-COMP_CODE ,
* CAJO_NUMBER type TCJ_DOCUMENTS-CAJO_NUMBER ,
* POSTING_NUMBER type TCJ_DOCUMENTS-POSTING_NUMBER ,
* CURRENCY type TCJ_DOCUMENTS-CURRENCY ,
* H_PAYMENTS type TCJ_DOCUMENTS-H_PAYMENTS,
* H_NET_AMOUNT type TCJ_DOCUMENTS-H_NET_AMOUNT,
* H_NET_PAYMENT_WT type TCJ_DOCUMENTS-H_NET_PAYMENT_WT ,
* DOCUMENT_DATE type TCJ_DOCUMENTS-DOCUMENT_DATE ,
* DOCUMENT_NUMBER type TCJ_DOCUMENTS-DOCUMENT_NUMBER ,
* POSTING_DATE type TCJ_DOCUMENTS-POSTING_DATE ,
* DOCUMENT_STATUS type TCJ_DOCUMENTS-DOCUMENT_STATUS ,
* end of GS_DOC .
*
* data : GT_DOC type standard table of GS_DOC ,
* GW_DOC type GS_DOC .
*
*
* types : begin of GS_ITEMS ,
* COMP_CODE type TCJ_POSITIONS-COMP_CODE ,
* CAJO_NUMBER type TCJ_POSITIONS-CAJO_NUMBER ,
* POSTING_NUMBER type TCJ_POSITIONS-POSTING_NUMBER ,
* CURRENCY type TCJ_POSITIONS-CURRENCY ,
* P_PAYMENTS type TCJ_POSITIONS-P_PAYMENTS,
* P_NET_AMOUNT type TCJ_POSITIONS-P_NET_AMOUNT,
* P_NET_PAYMENT_WT type TCJ_POSITIONS-P_NET_PAYMENT_WT ,
* POSTING_DATE type TCJ_POSITIONS-POSTING_DATE ,
* TRANSACT_NUMBER type TCJ_POSITIONS-TRANSACT_NUMBER ,
* GL_ACCOUNT type TCJ_POSITIONS-GL_ACCOUNT ,
* POSITION_TEXT type TCJ_POSITIONS-POSITION_TEXT ,
* KOKRS type TCJ_POSITIONS-KOKRS ,
* KOSTL type TCJ_POSITIONS-KOSTL ,
* PRCTR type TCJ_POSITIONS-PRCTR,
* PERNR type TCJ_POSITIONS-PERNR ,
* end of GS_ITEMS .
*
* data : GT_ITEMS type standard table of GS_ITEMS ,
* GW_ITEMS type GS_ITEMS .
*
* types : begin of GS_NAME ,
* COMP_CODE type TCJ_TRANS_NAMES-COMP_CODE ,
* TRANSACT_NUMBER type TCJ_TRANS_NAMES-TRANSACT_NUMBER ,
* TRANSACT_NAME type TCJ_TRANS_NAMES-TRANSACT_NAME ,
* end of GS_NAME .
*
* data : GT_NAME type standard table of GS_NAME ,
* GW_NAME type GS_NAME .
*
* data : begin of IT_FINAL occurs 0 ,
* CAJO_NUMBER type TCJ_DOCUMENTS-CAJO_NUMBER ,
* COMP_CODE type TCJ_DOCUMENTS-COMP_CODE,
* POSTING_NUMBER type TCJ_DOCUMENTS-POSTING_NUMBER ,
* CURRENCY type TCJ_DOCUMENTS-CURRENCY ,
* H_PAYMENTS type TCJ_DOCUMENTS-H_PAYMENTS,
* H_NET_AMOUNT type TCJ_DOCUMENTS-H_NET_AMOUNT,
* H_NET_PAYMENT_WT type TCJ_DOCUMENTS-H_NET_PAYMENT_WT ,
* DOCUMENT_DATE type TCJ_DOCUMENTS-DOCUMENT_DATE ,
* DOCUMENT_NUMBER type TCJ_DOCUMENTS-DOCUMENT_NUMBER ,
* POSTING_DATE type TCJ_DOCUMENTS-POSTING_DATE ,
* DOCUMENT_STATUS type TCJ_DOCUMENTS-DOCUMENT_STATUS ,
* TRANSACT_NAME type TCJ_TRANS_NAMES-TRANSACT_NAME ,
* TRANSACT_NUMBER type TCJ_POSITIONS-TRANSACT_NUMBER ,
* POSITION_TEXT type TCJ_POSITIONS-POSITION_TEXT ,
* KOKRS type TCJ_POSITIONS-KOKRS ,
* KOSTL type TCJ_POSITIONS-KOSTL ,
* PRCTR type TCJ_POSITIONS-PRCTR,
* GL_ACCOUNT type TCJ_POSITIONS-GL_ACCOUNT ,
* PERNR type TCJ_POSITIONS-PERNR ,
* end of IT_FINAL .
*
*
*
* select COMP_CODE CAJO_NUMBER POSTING_NUMBER CURRENCY H_PAYMENTS
* H_NET_AMOUNT H_NET_PAYMENT_WT DOCUMENT_DATE
* DOCUMENT_NUMBER POSTING_DATE DOCUMENT_STATUS from TCJ_DOCUMENTS into table GT_DOC
* for all entries in IT_FBCJ
* where COMP_CODE eq IT_FBCJ-BUKRS and CAJO_NUMBER eq IT_FBCJ-CJNR and DOCUMENT_STATUS eq 'S' .
*
* if GT_DOC IS NOT INITIAL .
* select COMP_CODE CAJO_NUMBER POSTING_NUMBER CURRENCY P_PAYMENTS
* P_NET_AMOUNT P_NET_PAYMENT_WT POSTING_DATE TRANSACT_NUMBER
* GL_ACCOUNT POSITION_TEXT KOKRS KOSTL PRCTR PERNR from TCJ_POSITIONS into table GT_ITEMS
* for all entries in GT_DOC where COMP_CODE eq GT_DOC-COMP_CODE and
* CAJO_NUMBER eq GT_DOC-CAJO_NUMBER and POSTING_NUMBER eq GT_DOC-POSTING_NUMBER .
*
*
* select COMP_CODE TRANSACT_NUMBER TRANSACT_NAME from TCJ_TRANS_NAMES
* into table GT_NAME for all entries in GT_ITEMS where COMP_CODE eq GT_ITEMS-COMP_CODE and
* TRANSACT_NUMBER eq GT_ITEMS-TRANSACT_NUMBER .
* endif .
*
*
*LOOP AT GT_DOC INTO GW_DOC .
* IT_FINAL-CAJO_NUMBER = GW_DOC-CAJO_NUMBER .
* IT_FINAL-COMP_CODE = GW_DOC-COMP_CODE .
* IT_FINAL-POSTING_NUMBER = GW_DOC-POSTING_NUMBER .
* IT_FINAL-CURRENCY = GW_DOC-CURRENCY .
* IT_FINAL-H_PAYMENTS = GW_DOC-H_PAYMENTS .
* IT_FINAL-H_NET_AMOUNT = GW_DOC-H_NET_AMOUNT .
*IT_FINAL-H_NET_PAYMENT_WT = GW_DOC-H_NET_PAYMENT_WT .
* IT_FINAL-DOCUMENT_DATE = GW_DOC-DOCUMENT_DATE .
* IT_FINAL-DOCUMENT_NUMBER = GW_DOC-DOCUMENT_NUMBER .
* IT_FINAL-POSTING_DATE = GW_DOC-POSTING_DATE .
* IT_FINAL-DOCUMENT_STATUS = GW_DOC-DOCUMENT_STATUS .
*
*LOOP AT GT_ITEMS INTO GW_ITEMS WHERE CAJO_NUMBER = GW_DOC-CAJO_NUMBER AND
* COMP_CODE = IT_FINAL-COMP_CODE .
* IT_FINAL-TRANSACT_NUMBER = GW_ITEMS-TRANSACT_NUMBER .
* IT_FINAL-POSITION_TEXT = GW_ITEMS-POSITION_TEXT .
* IT_FINAL-KOKRS = GW_ITEMS-KOKRS .
* IT_FINAL-KOSTL = GW_ITEMS-KOSTL .
* IT_FINAL-PRCTR = GW_ITEMS-PRCTR .
* IT_FINAL-GL_ACCOUNT = GW_ITEMS-GL_ACCOUNT .
* IT_FINAL-PERNR = GW_ITEMS-PERNR.
* ENDLOOP .
*
* READ TABLE GT_NAME INTO GW_NAME WITH KEY COMP_CODE = GW_DOC-COMP_CODE
* TRANSACT_NUMBER = GW_ITEMS-TRANSACT_NUMBER .
* IF SY-SUBRC = 0 .
* IT_FINAL-TRANSACT_NAME = GW_NAME-TRANSACT_NAME .
* ENDIF .
* APPEND IT_FINAL .
* ENDLOOP .
*SORT IT_FINAL .
endform. " DATA_EXRACTION
*&---------------------------------------------------------------------*
*& Form DATA_EXRACTION1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DATA_EXRACTION1 .
data : begin of IT_DOC occurs 0 ,
COMP_CODE type TCJ_DOCUMENTS-COMP_CODE ,
CAJO_NUMBER type TCJ_DOCUMENTS-CAJO_NUMBER ,
POSTING_NUMBER type TCJ_DOCUMENTS-POSTING_NUMBER ,
CURRENCY type TCJ_DOCUMENTS-CURRENCY ,
H_PAYMENTS type TCJ_DOCUMENTS-H_PAYMENTS,
H_NET_AMOUNT type TCJ_DOCUMENTS-H_NET_AMOUNT,
H_NET_PAYMENT_WT type TCJ_DOCUMENTS-H_NET_PAYMENT_WT ,
DOCUMENT_DATE type TCJ_DOCUMENTS-DOCUMENT_DATE ,
DOCUMENT_NUMBER type TCJ_DOCUMENTS-DOCUMENT_NUMBER ,
POSTING_DATE type TCJ_DOCUMENTS-POSTING_DATE ,
DOCUMENT_STATUS type TCJ_DOCUMENTS-DOCUMENT_STATUS ,
end of IT_DOC .
data : begin of IT_ITEMS occurs 0 ,
COMP_CODE type TCJ_POSITIONS-COMP_CODE ,
CAJO_NUMBER type TCJ_POSITIONS-CAJO_NUMBER ,
POSTING_NUMBER type TCJ_POSITIONS-POSTING_NUMBER ,
CURRENCY type TCJ_POSITIONS-CURRENCY ,
P_PAYMENTS type TCJ_POSITIONS-P_PAYMENTS,
P_NET_AMOUNT type TCJ_POSITIONS-P_NET_AMOUNT,
P_NET_PAYMENT_WT type TCJ_POSITIONS-P_NET_PAYMENT_WT ,
POSTING_DATE type TCJ_POSITIONS-POSTING_DATE ,
TRANSACT_NUMBER type TCJ_POSITIONS-TRANSACT_NUMBER ,
GL_ACCOUNT type TCJ_POSITIONS-GL_ACCOUNT ,
POSITION_NUMBER type tcj_positions-POSITION_NUMBER ,
POSITION_TEXT type TCJ_POSITIONS-POSITION_TEXT ,
KOKRS type TCJ_POSITIONS-KOKRS ,
KOSTL type TCJ_POSITIONS-KOSTL ,
PRCTR type TCJ_POSITIONS-PRCTR,
PERNR type TCJ_POSITIONS-PERNR ,
end of IT_ITEMS .
DATA : BEGIN OF IT_NAME OCCURS 0 ,
COMP_CODE TYPE TCJ_TRANS_NAMES-COMP_CODE ,
TRANSACT_NUMBER TYPE TCJ_TRANS_NAMES-TRANSACT_NUMBER ,
TRANSACT_NAME TYPE TCJ_TRANS_NAMES-TRANSACT_NAME ,
END OF IT_NAME .
DATA : BEGIN OF IT_FINAL OCCURS 0 ,
CAJO_NUMBER type TCJ_DOCUMENTS-CAJO_NUMBER ,
COMP_CODE type TCJ_DOCUMENTS-COMP_CODE,
POSTING_NUMBER type TCJ_DOCUMENTS-POSTING_NUMBER ,
CURRENCY type TCJ_DOCUMENTS-CURRENCY ,
H_PAYMENTS type TCJ_DOCUMENTS-H_PAYMENTS,
H_NET_AMOUNT type TCJ_DOCUMENTS-H_NET_AMOUNT,
POSITION_NUMBER type tcj_positions-POSITION_NUMBER ,
H_NET_PAYMENT_WT type TCJ_DOCUMENTS-H_NET_PAYMENT_WT ,
DOCUMENT_DATE type TCJ_DOCUMENTS-DOCUMENT_DATE ,
DOCUMENT_NUMBER type TCJ_DOCUMENTS-DOCUMENT_NUMBER ,
POSTING_DATE type TCJ_DOCUMENTS-POSTING_DATE ,
DOCUMENT_STATUS type TCJ_DOCUMENTS-DOCUMENT_STATUS ,
TRANSACT_NAME TYPE TCJ_TRANS_NAMES-TRANSACT_NAME ,
TRANSACT_NUMBER TYPE TCJ_POSITIONS-TRANSACT_NUMBER ,
POSITION_TEXT type TCJ_POSITIONS-POSITION_TEXT ,
DOCUMENT_NUMBER1 type TCJ_DOCUMENTS-DOCUMENT_NUMBER ,
KOKRS type TCJ_POSITIONS-KOKRS ,
KOSTL type TCJ_POSITIONS-KOSTL ,
PRCTR type TCJ_POSITIONS-PRCTR,
GL_ACCOUNT type TCJ_POSITIONS-GL_ACCOUNT ,
PERNR type TCJ_POSITIONS-PERNR ,
END OF IT_FINAL .
select COMP_CODE CAJO_NUMBER POSTING_NUMBER CURRENCY H_PAYMENTS
H_NET_AMOUNT H_NET_PAYMENT_WT DOCUMENT_DATE
DOCUMENT_NUMBER POSTING_DATE DOCUMENT_STATUS FROM TCJ_DOCUMENTS INTO TABLE IT_DOC
* FOR ALL ENTRIES IN IT_FBCJ
WHERE COMP_CODE EQ IT_FBCJ-BUKRS AND CAJO_NUMBER EQ IT_FBCJ-CJNR ANDDOCUMENT_STATUS EQ 'S' .
IF SY-SUBRC = 0 .
SELECT COMP_CODE CAJO_NUMBER POSTING_NUMBER CURRENCY P_PAYMENTS POSITION_NUMBER
P_NET_AMOUNT P_NET_PAYMENT_WT POSTING_DATE TRANSACT_NUMBER
GL_ACCOUNT POSITION_TEXT KOKRS KOSTL PRCTR PERNR FROM TCJ_POSITIONSINTO
corresponding fields of table IT_ITEMS
FOR ALL ENTRIES IN IT_DOC WHERE COMP_CODE EQ IT_DOC-COMP_CODE AND
CAJO_NUMBER EQ IT_DOC-CAJO_NUMBER and POSTING_NUMBER EQ IT_DOC-POSTING_NUMBER .
ENDIF .
IF SY-SUBRC = 0 .
SELECT COMP_CODE TRANSACT_NUMBER TRANSACT_NAME FROM TCJ_TRANS_NAMES
INTO TABLE IT_NAME FOR ALL ENTRIES IN IT_ITEMS WHERE COMP_CODE EQ IT_ITEMS-COMP_CODE AND
TRANSACT_NUMBER EQ IT_ITEMS-TRANSACT_NUMBER .
ENDIF .
LOOP AT IT_DOC .
IT_FINAL-CAJO_NUMBER = IT_DOC-CAJO_NUMBER .
IT_FINAL-COMP_CODE = IT_DOC-COMP_CODE .
IT_FINAL-POSTING_NUMBER = IT_DOC-POSTING_NUMBER .
IT_FINAL-CURRENCY = IT_DOC-CURRENCY .
* IT_FINAL-H_PAYMENTS = IT_DOC-H_PAYMENTS .
* IT_FINAL-H_NET_AMOUNT = IT_DOC-H_NET_AMOUNT .
IT_FINAL-H_NET_PAYMENT_WT = IT_DOC-H_NET_PAYMENT_WT .
IT_FINAL-DOCUMENT_DATE = IT_DOC-DOCUMENT_DATE .
IT_FINAL-DOCUMENT_NUMBER = IT_DOC-DOCUMENT_NUMBER .
IT_FINAL-POSTING_DATE = IT_DOC-POSTING_DATE .
IT_FINAL-DOCUMENT_STATUS = IT_DOC-DOCUMENT_STATUS .
LOOP AT IT_ITEMS WHERE CAJO_NUMBER = IT_DOC-CAJO_NUMBER AND
COMP_CODE = IT_DOC-COMP_CODE AND
POSTING_NUMBER = IT_DOC-POSTING_NUMBER .
IT_FINAL-TRANSACT_NUMBER = IT_ITEMS-TRANSACT_NUMBER .
IT_FINAL-POSITION_TEXT = IT_ITEMS-POSITION_TEXT .
it_final-POSITION_NUMBER = it_items-POSITION_NUMBER .
IT_FINAL-H_PAYMENTS = IT_ITEMS-P_PAYMENTS .
IT_FINAL-H_NET_AMOUNT = IT_ITEMS-P_NET_AMOUNT .
IT_FINAL-KOKRS = IT_ITEMS-KOKRS .
IT_FINAL-KOSTL = IT_ITEMS-KOSTL .
IT_FINAL-PRCTR = IT_ITEMS-PRCTR .
IT_FINAL-GL_ACCOUNT = IT_ITEMS-GL_ACCOUNT .
IT_FINAL-PERNR = IT_ITEMS-PERNR.
ENDLOOP .
READ TABLE IT_NAME WITH KEY COMP_CODE = IT_DOC-COMP_CODE
TRANSACT_NUMBER = IT_ITEMS-TRANSACT_NUMBER .
* LOOP AT IT_NAME WHERE COMP_CODE = IT_DOC-COMP_CODE AND
* TRANSACT_NUMBER = IT_ITEMS-TRANSACT_NUMBER .
IF SY-SUBRC = 0 .
IT_FINAL-TRANSACT_NAME = IT_NAME-TRANSACT_NAME .
ENDIF .
APPEND IT_FINAL .
CLEAR IT_FINAL .
ENDLOOP .
* ENDLOOP .
IF SY-SUBRC = 0 .
SORT IT_FINAL .
DELETE ADJACENT DUPLICATES FROM IT_FINAL COMPARING ALL FIELDS .
SORT IT_FINAL .
ENDIF .
LOOP AT IT_FINAL .
ITEMS1-CAJO_NUMBER = IT_FINAL-CAJO_NUMBER .
TCJ-CAJO_NUMBER = IT_FINAL-CAJO_NUMBER .
TAX-CAJO_NUMBER = IT_FINAL-CAJO_NUMBER .
ITEMS1-COMP_CODE = IT_FINAL-COMP_CODE.
TCJ-COMP_CODE = IT_FINAL-COMP_CODE.
TAX-COMP_CODE = IT_FINAL-COMP_CODE.
ITEMS1-POSTING_NUMBER = IT_FINAL-POSTING_NUMBER .
TCJ-POSTING_NUMBER = IT_FINAL-POSTING_NUMBER .
TAX-POSTING_NUMBER = IT_FINAL-POSTING_NUMBER .
* ITEMS1-CURRENCY = IT_FINAL-CURRENCY .
ITEMS1-H_PAYMENTS = IT_FINAL-H_PAYMENTS .
ITEMS1-H_NET_AMOUNT = IT_FINAL-H_NET_AMOUNT .
ITEMS1-H_NET_PAYMENT_WT = IT_FINAL-H_NET_PAYMENT_WT .
ITEMS1-DOCUMENT_DATE = IT_FINAL-DOCUMENT_DATE .
ITEMS1-DOCUMENT_NUMBER = IT_FINAL-DOCUMENT_NUMBER .
ITEMS1-POSTING_DATE = IT_FINAL-POSTING_DATE .
ITEMS1-DOCUMENT_STATUS = IT_FINAL-DOCUMENT_STATUS .
ITEMS1-TRANSACT_NAME = IT_FINAL-TRANSACT_NAME .
* ITEMS1-TRANSACT_NUMBER = IT_FINAL-TRANSACT_NUMBER .
ITEMS1-POSITION_TEXT = IT_FINAL-POSITION_TEXT .
items1-POSITION_NUMBER = it_final-POSITION_NUMBER .
TCJ-POSITION_NUMBER = it_final-POSITION_NUMBER .
TAX-POSITION_NUMBER = it_final-POSITION_NUMBER .
* ITEMS1-DOCUMENT_NUMBER1 = IT_FINAL-DOCUMENT_NUMBER .
ITEMS1-KOKRS = IT_FINAL-KOKRS .
ITEMS1-KOSTL = IT_FINAL-KOSTL .
ITEMS1-PRCTR = IT_FINAL-PRCTR .
ITEMS1-GL_ACCOUNT = IT_FINAL-GL_ACCOUNT .
ITEMS1-PERNR = IT_FINAL-PERNR .
APPEND ITEMS1 .
APPEND TCJ .
APPEND TAX.
ENDLOOP .
POSTING[] = ITEMS1[] .
* TAX[] = TCJ[] .
ENDFORM. " DATA_EXRACTION1
*&---------------------------------------------------------------------*
*& Form BAPI_UPDATE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM BAPI_UPDATE .
DATA : P_BEG_BALANCE TYPE CJAMOUNT ,
P_TOTAL_RECEIPTS TYPE CJAMOUNT,
P_TOTAL_PAYMENTS TYPE CJAMOUNT,
P_TOTAL_CHECKS TYPE CJAMOUNT,
P_RUN_BALANCE TYPE CJAMOUNT,
P_RUN_CASH_BALANCE TYPE CJAMOUNT,
P_NUMB_OF_REC TYPE I,
P_NUMB_OF_PAYM TYPE I,
P_NUMB_OF_CHECKS TYPE I.
P_BEG_BALANCE = '0.00' .
P_TOTAL_RECEIPTS = '0.00'.
P_TOTAL_PAYMENTS = '40.00'.
P_TOTAL_CHECKS = '0.00' .
P_RUN_BALANCE = '0.00' .
P_RUN_CASH_BALANCE = '0.00' .
P_NUMB_OF_REC = '4' .
P_NUMB_OF_PAYM = '4' .
P_NUMB_OF_CHECKS = '0' .
call function 'FCJ_POST_ALL'
exporting
I_COMP_CODE = HEADER1-COMP_CODE
I_CAJO_NUMBER = HEADER1-CAJO_NUMBER
I_CURRENCY = HEADER1-CURRENCY
I_TYP = 'C'
I_DISPLAY_PERIOD_LO = '01122012'
I_DISPLAY_PERIOD_HI = '31122012'
* IMPORTING
* E_ERROR_NUMBER =
TABLES
ITCJ_POSTINGS = ITEMS1
ITCJ_WTAX_ITEMS = TAX
ITCJ_SPLIT_POSTINGS = POSTING
ITCJ_CPD = TCJ
CHANGING
P_BEG_BALANCE = P_BEG_BALANCE
P_TOTAL_RECEIPTS = P_TOTAL_RECEIPTS
P_TOTAL_PAYMENTS = P_TOTAL_PAYMENTS
P_TOTAL_CHECKS = P_TOTAL_CHECKS
P_RUN_BALANCE = P_RUN_BALANCE
P_RUN_CASH_BALANCE = P_RUN_CASH_BALANCE
P_NUMB_OF_REC = P_NUMB_OF_REC
P_NUMB_OF_PAYM = P_NUMB_OF_PAYM
P_NUMB_OF_CHECKS = P_NUMB_OF_CHECKS
.
commit work.
wait up to 10 seconds.
* endif.
*Commiting the work using Commit Work
* call function 'BAPI_TRANSACTION_COMMIT'
**EXPORTING
** WAIT = '10'
*importing
* RETURN = IT_RETURN
.
loop at IT_RETURN.
write: / IT_RETURN-TYPE,
IT_RETURN-ID ,
IT_RETURN-NUMBER,
IT_RETURN-MESSAGE.
endloop.
ENDFORM. " BAPI_UPDATE