‎2008 Nov 07 10:31 AM
Hello All
I have a problem.
I use BAPI_CASHJOURNALDOC_CREATE for transaction FBCJ.
This bapi only save the information, but does not Post it.
How can I post it with this BAPI, or an another BAPI?
Regards
György
‎2008 Nov 07 10:40 AM
This BAPi does post the cash journal for FBCJ. I have used the following code for posting cash journals. I am attaching code for your reference.
PROGRAM ZFIIFBCJ
NO STANDARD PAGE HEADING LINE-SIZE 255.
DATA: BEGIN OF IT_FBCJ OCCURS 0,
BUDAT LIKE ISCJ_E_POSTINGS-POSTING_DATE,
BLDAT LIKE ISCJ_E_POSTINGS-DOCUMENT_DATE,
BUKRS LIKE TCJ_C_JOURNALS-COMP_CODE,
CJNR LIKE TCJ_C_JOURNALS-CAJO_NUMBER,
TRAN LIKE TCJ_TRANSACTIONS-TRANSACT_NUMBER,
AMT(16)," LIKE ISCJ_E_POSTINGS-H_PAYMENTS,
DOCNR LIKE ISCJ_E_POSTINGS-DOCUMENT_NUMBER,
KOSTL LIKE ISCJ_E_POSTINGS-KOSTL,
AUFNR LIKE ISCJ_E_POSTINGS-AUFNR,
PRCTR LIKE ISCJ_E_POSTINGS-PRCTR,
TEXT LIKE ISCJ_E_POSTINGS-POSITION_TEXT,
END OF IT_FBCJ.
DATA: BDCDATA LIKE TABLE OF BDCDATA WITH HEADER LINE,
IT_BDCMSGCOLL LIKE TABLE OF BDCMSGCOLL WITH HEADER LINE,
ITAB LIKE TABLE OF ALSMEX_TABLINE WITH HEADER LINE.
DATA: HEADER TYPE BAPI_CJ_HEADER,
ITEMS TYPE TABLE OF BAPI_CJ_ITEMS WITH HEADER LINE,
IT_RETURN LIKE 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.
&----
*&
*& 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.
&----
*&
*& 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 = '2'
I_END_COL = '11'
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-AUFNR.
WHEN '0010'.
MOVE ITAB-VALUE TO IT_FBCJ-PRCTR.
WHEN '0011'.
MOVE ITAB-VALUE TO IT_FBCJ-TEXT.
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.
HEADER-CAJO_NUMBER = IT_FBCJ-CJNR.
HEADER-REF_DOC_NO = IT_FBCJ-DOCNR.
CONCATENATE IT_FBCJ-BUDAT4(4) IT_FBCJ-BUDAT2(2) IT_FBCJ-BUDAT(2) INTO HEADER-PSTNG_DATE.
CONCATENATE IT_FBCJ-BLDAT4(4) IT_FBCJ-BLDAT2(2) IT_FBCJ-BLDAT(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-ORDERID = IT_FBCJ-AUFNR.
ITEMS-PROFIT_CTR = IT_FBCJ-PRCTR.
ITEMS-POSITION_TEXT = IT_FBCJ-TEXT.
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
.
Commiting the work using Commit Work
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT =
IMPORTING
RETURN =
.
LOOP AT IT_RETURN.
WRITE: / IT_RETURN-TYPE,
IT_RETURN-ID ,
IT_RETURN-NUMBER,
IT_RETURN-MESSAGE.
ENDLOOP.
ENDFORM. "BAPI
Pls use and try the BAPi in the same way, I am sure you will be able to post cash journals.
‎2016 Aug 24 12:56 PM
Hi,
Mr. Former Member .
This thread is 7 8 years before. I am new in ABAP. So can you please provide me sample excel file format how you prepared? Its very very urgent for me. I understood this code according mt req i also changed something but not understand how i prepared excel file supoose in one line item means in fbcj transaction in cash receipt there are in split option so many entry then how it takes. please help me out?
Regards,
Kauhsik Pattanayak.
‎2008 Nov 07 10:46 AM
In the Notes related to this BAPI [Note 616804 - FBCJ: BAPI for saving cash journal documents|https://service.sap.com/sap/support/notes/616804] and [Note 532888 - FBCJ: Additional functions|https://service.sap.com/sap/support/notes/532888], SAP wrote :
Transfer of external data to the cash journal
Using a BAPI, you can transfer data from an external system or from another R/3 system to the FI cash journal and create a saved cash journal document. You can use the interface transaction FBCJ to further process (for example, post) the saved cash journal document.
This enhancement is available in Release R/3 Enterprise (4.7) (Note 616804).
This fact suggests that the standard process is to call the transaction FBCJ on data created by the BAPI. The purpose of this BAPI is to avoid double entry.
Regards
‎2009 Nov 18 10:01 AM
Hi,
I'm in a middle of the same task currently. I've been asked to create an automated process to post CJ entries passed from external system, and I'm doing a research is that possible.
My 1st intention was to use own enhancement implementation of an enhancement spot ' ES_SAPLSAPLFCJ_BAPI' and to call FM 'CJ_POST' within this implementation (with restrictions to be posted in my case only), not sure if it is applicable, it seems all the paramethers for calling FM 'CJ_POST' are available within body of the FM. Sadly, it seems 'CJ_POST' did save, so it looks unusable.
Further, found a proposal to use FM 'FCJ_POST_POSDOC' - and it seems it should be done externaly from my program, instead of implemented within enhancement, because there is COMMIT performed internaly in the FM.
In other words, I'm at crossroad and asking for help.
Would you please describe in details your case and how did you solve it - especialy in the part of posting CJ entries?
Any help would be highly appreciated.
Many thanks in advance.
Regards,
Ivaylo Mutafchiev
Senior SAP BC Development Consultant
‎2011 Sep 05 1:01 PM
After creating or saving cash journal document number,
To post use FM FCJ_POST_ALL
pass parameters as for reciepts I_TYP = 'R'
payments I_TYP = 'E'
and other required parameters
‎2012 Dec 22 9:20 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 AND DOCUMENT_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_POSITIONS INTO
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