How to debugg an Inbound Proxy???
Hi m using BAPI's in Inbound proxy and it is an asyn method. I am doing debugging like this : first I go to <b>utilities</b>-><b>settings</b>--> <b>debugging</b>-><b>check the box to acitvate the debugging mode</b> then putting my cursor at a desired position wher i want to set the break point then pressing the stop button to set the HTTP breakpoint in Inbound proxy. But it is not working if anybody knows some other method to debugg the Inbound proxy please help me.
Hi Sarvesh,
These links give a clear idea about how to debug your proxies.
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/cbc7d790-0201-0010-bea6-c549902e93e2
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/e29161d3-0401-0010-3495-8593de5f5da6
Hope this helps.
Cheers,
Chandra
Similar Messages
-
Hi,
How to create ABAP Inbound Proxy Structure with two ztables.
Regards,
Syfhi,
Check the link
http://help.sap.com/saphelp_nw04/helpdata/en/ab/585f3c482a7331e10000000a114084/frameset.htm -
How to call BAPI from ABAP Inbound Proxy
Hi All
Can some one provide/giude a sample code on how to call a BAPI from generated Method (Inbound Proxy) and how are the table parameters passed from Proxy to BAPI.
Thanks
Ravi/Hello Ravi,
In the proxy before calling the BAPI, construct the table, fill it with the appropiate values by lopping over the proxy request object. Now use this table for calling BAPI
Cheers,
Naveen -
Program code for inbound proxy
Hello,
I would like to ask for your help. I am creating an abap program for an inbound proxy to update tables.
It doesn't get the value listed in the file. In the method section, I have created the following codes:
DATA: receipt TYPE zgiserdata-receipt,
material_slip TYPE zgiserdata-matslip,
plant TYPE zgiserdata-plant,
material_number TYPE zgiserdata-matno,
new_serial TYPE zgiserdata-new_serial,
old_serial TYPE zgiserdata-old_serial,
warrex_date TYPE zgiserdata-warrexdate,
posting_date TYPE zgiserdata-postdate.
Convert input parameters
receipt = input-GOODS_ISSUE_SERIALIZED_CREATE-GOODS_ISSUE-reciept.
material_slip = input-GOODS_ISSUE_SERIALIZED_CREATE-GOODS_ISSUE-material_slip.
plant = input-GOODS_ISSUE_SERIALIZED_CREATE-GOODS_ISSUE-plant.
material_number = input-GOODS_ISSUE_SERIALIZED_CREATE-GOODS_ISSUE-material_number.
new_serial = input-GOODS_ISSUE_SERIALIZED_CREATE-GOODS_ISSUE-new_serial.
old_serial = input-GOODS_ISSUE_SERIALIZED_CREATE-GOODS_ISSUE-old_serial.
warrex_date = input-GOODS_ISSUE_SERIALIZED_CREATE-GOODS_ISSUE-warrex_date.
posting_date = input-GOODS_ISSUE_SERIALIZED_CREATE-GOODS_ISSUE-posting_date.
Debugged on 'receipt', the value I got is 'This is a string 1' instead of the record that is in the file.
'This is a string 2' for 'material_slip', so on and so forth.
Checked on the XI side that the records in the file is being transmitted without any errors. I tested this through SPROXY. Got the message that is executed with no errors, however, I got the values mentioned above instead of the values in the file being sent to XI.
Can you please help me what needs to be checked in order to have the values that are in the file being sent to XI?
Thank you.Hi Jho,
>>>Debugged on 'receipt',
How did you try to debug the proxy? I belive you tried debugging the proxy using SPROXY transaction code. If you use SPROXY transaction code by default the values are filled as 'This is a string 1 .. n so on..
I would suggest you to copy the xml payload from XI and then in SPROXY transaction code paste the payload and then trigger the proxy in debugging mode.
Or search in sdn how to debug proxy. You can use that guide to debug proxy real time. Guide is also available in some SAP Note. Dont remember the Note number.
If there is anything else you want to know let us know.
Regards,
Sumit -
Automating Cash Journal Posting using inbound proxy interface and upload program
Hi Experts,
I have a requirement where in cash journal posting needs to be carried out automatically by an inbound interface on a periodic basis and at the start during cut over an upload program needs to be used to upload beg balance data . For this purpose I have used BAPI_CASHJOURNALDOC_CREATE to save cash journal entries along with BAPI TRANSACTION COMMIT.
Once the Data is successfully saved I am using FM FCJ_GET_DATA_FOR_SCREEN to get prerequisite data for the FM FCJ_POST_ALL which is used by the Standard cash journal program internally to post the saved data. ( I got this by debugging the standard transaction and both FMs are not yet released )
The issues I am facing is that the the FM FCJ_POST_ALL does not always post the data it behaves in random fashion i.e some times it posts the entries where as sometimes it does not post the entries.
I have tried using commit work after the FM but that also does not result in consistent behavior of the program. One more issue is the i am not allowed to use commit work in a an inbound proxy so how do i proceed ?
I am attaching the code for further analysis:
DATA: LIT_TCJ_TRANS_NAMES TYPE TABLE OF TCJ_TRANS_NAMES,
LWA_TCJ_TRANS_NAMES TYPE TCJ_TRANS_NAMES,
LV_WAIT TYPE BAPITA-WAIT VALUE '1',
LV_RECORD_NO TYPE SY-TABIX.
DATA : LIT_POSTING TYPE STANDARD TABLE OF ISCJ_POSTINGS,
LIT_WTAX_ITEMS TYPE STANDARD TABLE OF TCJ_WTAX_ITEMS,
LIT_SPLIT_POSTINGS TYPE STANDARD TABLE OF ISCJ_POSTINGS,
LIT_CPD TYPE STANDARD TABLE OF TCJ_CPD.
DATA: LV_BEG_BALANCE TYPE CJAMOUNT,
LV_TOTAL_RECEIPTS TYPE CJAMOUNT,
LV_TOTAL_PAYMENTS TYPE CJAMOUNT,
LV_TOTAL_CHECKS TYPE CJAMOUNT,
LV_RUN_BALANCE TYPE CJAMOUNT,
LV_RUN_CASH_BALANCE TYPE CJAMOUNT,
LV_NUMB_OF_REC TYPE I,
LV_NUMB_OF_PAYM TYPE I,
LV_NUMB_OF_CHECKS TYPE I.
DESCRIBE TABLE GIT_CJ LINES GV_TOTAL_RECORDS.
SELECT MANDT COMP_CODE TRANSACT_NUMBER LANGU TRANSACT_NAME LONG_TEXT
FROM TCJ_TRANS_NAMES
INTO TABLE LIT_TCJ_TRANS_NAMES
WHERE LANGU = GC_EN.
IF SY-SUBRC <> 0.
MESSAGE 'No Business Transaction maintained for Company Code in this client'(016) TYPE GC_I.
LEAVE LIST-PROCESSING.
ENDIF.
DESCRIBE TABLE GIT_CJ LINES GV_TOTAL_RECORDS.
LOOP AT GIT_CJ INTO GWA_CJ.
LV_RECORD_NO = SY-TABIX.
CLEAR: GS_HEADER_BAPI,
GS_CJ_KEY,
GWA_ITEMS.
REFRESH: GIT_ITEMS,
GIT_RETURN.
GS_HEADER_BAPI-COMP_CODE = GWA_CJ-BUKRS.
GS_HEADER_BAPI-CAJO_NUMBER = GWA_CJ-CJNR.
GS_HEADER_BAPI-CURRENCY = GC_PHP.
CLEAR LWA_TCJ_TRANS_NAMES.
READ TABLE LIT_TCJ_TRANS_NAMES INTO LWA_TCJ_TRANS_NAMES WITH KEY COMP_CODE = GWA_CJ-BUKRS
LANGU = GC_EN
TRANSACT_NAME = GWA_CJ-BTNAM.
IF SY-SUBRC = 0.
GWA_ITEMS-TRANSACT_NUMBER = LWA_TCJ_TRANS_NAMES-TRANSACT_NUMBER.
GWA_ITEMS-P_RECEIPTS = GWA_CJ-CJRAT.
GWA_ITEMS-TAX_CODE = GWA_CJ-TXCOD.
GS_HEADER_BAPI-BP_NAME = GWA_CJ-BPNAM.
GWA_ITEMS-POSITION_TEXT = GWA_CJ-POTXT.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = GWA_CJ-LIFNR
IMPORTING
OUTPUT = GWA_ITEMS-VENDOR_NO.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = GWA_CJ-KUNNR
IMPORTING
OUTPUT = GWA_ITEMS-CUSTOMER.
PERFORM SUB_DATE_FROMAT_BAPI CHANGING GWA_CJ-BLDAT
GS_HEADER_BAPI-DOC_DATE.
PERFORM SUB_DATE_FROMAT_BAPI CHANGING GWA_CJ-BUDAT
GS_HEADER_BAPI-PSTNG_DATE.
GS_HEADER_BAPI-REF_DOC_NO = GWA_CJ-XBLNR.
GS_HEADER_BAPI-ALLOC_NMBR = GWA_CJ-ALLNO.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = GWA_CJ-KOSTL
IMPORTING
OUTPUT = GWA_ITEMS-COSTCENTER.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = GWA_CJ-PRCTR
IMPORTING
OUTPUT = GWA_ITEMS-PROFIT_CTR.
APPEND GWA_ITEMS TO GIT_ITEMS.
CALL FUNCTION 'BAPI_CASHJOURNALDOC_CREATE'
EXPORTING
HEADER = GS_HEADER_BAPI
IMPORTING
COMPANY_CODE = GS_CJ_KEY-COMP_CODE
CASH_JOURNAL_NUMBER = GS_CJ_KEY-CAJO_NUMBER
FISCAL_YEAR = GS_CJ_KEY-FISC_YEAR
CASH_JOURNAL_DOC_NO = GS_CJ_KEY-POSTING_NUMBER
TABLES
ITEMS = GIT_ITEMS
RETURN = GIT_RETURN.
IF GIT_RETURN IS NOT INITIAL.
READ TABLE GIT_RETURN INTO GWA_RETURN WITH KEY TYPE = GC_E.
IF SY-SUBRC <> 0.
CLEAR GWA_CJ_S.
MOVE-CORRESPONDING GS_CJ_KEY TO GWA_CJ_S.
CLEAR GWA_RETURN.
READ TABLE GIT_RETURN INTO GWA_RETURN WITH KEY TYPE = GC_S.
IF SY-SUBRC = 0.
MOVE GWA_RETURN-MESSAGE TO GWA_CJ_S-MSG.
CLEAR GWA_RETURN.
READ TABLE GIT_RETURN INTO GWA_RETURN WITH KEY TYPE = GC_I.
IF SY-SUBRC = 0.
CLEAR GWA_CJ_E.
CONCATENATE GWA_RETURN-MESSAGE GWA_CJ_S-MSG INTO GWA_CJ_E-MSG SEPARATED BY GC_PIPE_FORMAT.
MOVE-CORRESPONDING GS_HEADER_BAPI TO GWA_CJ_E.
GWA_CJ_E-POSTING_NUMBER = LV_RECORD_NO.
APPEND GWA_CJ_E TO GIT_CJ_E.
GV_ERROR_RECORDS = GV_ERROR_RECORDS + GC_1.
ELSE.
IF P_TEST NE GC_X.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = LV_WAIT.
REFRESH:LIT_POSTING ,
LIT_WTAX_ITEMS ,
LIT_SPLIT_POSTINGS ,
LIT_CPD .
CLEAR: LV_BEG_BALANCE ,
LV_TOTAL_RECEIPTS ,
LV_TOTAL_PAYMENTS ,
LV_TOTAL_CHECKS ,
LV_RUN_BALANCE ,
LV_RUN_CASH_BALANCE ,
LV_NUMB_OF_REC ,
LV_NUMB_OF_PAYM ,
LV_NUMB_OF_CHECKS .
CALL FUNCTION 'FCJ_GET_DATA_FOR_SCREEN'
EXPORTING
I_COMP_CODE = GS_CJ_KEY-COMP_CODE
I_CAJO_NUMBER = GS_CJ_KEY-CAJO_NUMBER
I_DISPLAY_PERIOD_LO = GS_HEADER_BAPI-PSTNG_DATE
I_DISPLAY_PERIOD_HI = GS_HEADER_BAPI-PSTNG_DATE
IMPORTING
E_BEGINNING_BALANCE = LV_BEG_BALANCE
E_RUNNING_BALANCE = LV_RUN_BALANCE
E_RUNNING_CASH_BALANCE = LV_RUN_CASH_BALANCE
E_TOTAL_RECEIPTS = LV_TOTAL_RECEIPTS
E_TOTAL_REC_NUMBER = LV_NUMB_OF_REC
E_TOTAL_PAYMENTS = LV_TOTAL_PAYMENTS
E_TOTAL_PAYM_NUMBER = LV_NUMB_OF_PAYM
E_TOTAL_CHECKS = LV_TOTAL_CHECKS
E_TOTAL_CHECKS_NUMBER = LV_NUMB_OF_CHECKS
TABLES
E_POSTINGS = LIT_POSTING
E_WTAX_ITEMS = LIT_WTAX_ITEMS
E_SPLIT_POSTINGS = LIT_SPLIT_POSTINGS
E_CPD = LIT_CPD.
CALL FUNCTION 'FCJ_POST_ALL'
EXPORTING
I_COMP_CODE = GS_CJ_KEY-COMP_CODE
I_CAJO_NUMBER = GS_CJ_KEY-CAJO_NUMBER
I_CURRENCY = GS_HEADER_BAPI-CURRENCY
I_TYP = 'R'
I_DISPLAY_PERIOD_LO = GS_HEADER_BAPI-PSTNG_DATE
I_DISPLAY_PERIOD_HI = GS_HEADER_BAPI-PSTNG_DATE
* IMPORTING
* E_ERROR_NUMBER =
TABLES
ITCJ_POSTINGS = LIT_POSTING
ITCJ_WTAX_ITEMS = LIT_WTAX_ITEMS
ITCJ_SPLIT_POSTINGS = LIT_SPLIT_POSTINGS
ITCJ_CPD = LIT_CPD
CHANGING
P_BEG_BALANCE = LV_BEG_BALANCE
P_TOTAL_RECEIPTS = LV_TOTAL_RECEIPTS
P_TOTAL_PAYMENTS = LV_TOTAL_PAYMENTS
P_TOTAL_CHECKS = LV_TOTAL_CHECKS
P_RUN_BALANCE = LV_RUN_BALANCE
P_RUN_CASH_BALANCE = LV_RUN_CASH_BALANCE
P_NUMB_OF_REC = LV_NUMB_OF_REC
P_NUMB_OF_PAYM = LV_NUMB_OF_PAYM
P_NUMB_OF_CHECKS = LV_NUMB_OF_CHECKS.
COMMIT WORK.
ENDIF.
APPEND GWA_CJ_S TO GIT_CJ_S.
GV_SUCCESS_RECORDS = GV_SUCCESS_RECORDS + GC_1.
CLEAR GWA_CJ_S.
ENDIF.
ENDIF.
ELSE.
CLEAR GWA_CJ_E.
MOVE-CORRESPONDING GS_HEADER_BAPI TO GWA_CJ_E.
MOVE GWA_RETURN-MESSAGE TO GWA_CJ_E-MSG.
GWA_CJ_E-POSTING_NUMBER = LV_RECORD_NO.
APPEND GWA_CJ_E TO GIT_CJ_E.
GV_ERROR_RECORDS = GV_ERROR_RECORDS + GC_1.
ENDIF.
ENDIF.
ELSE.
GWA_RETURN-MESSAGE = 'Transaction Name does not correspond to any Transaction Number'(017).
CLEAR GWA_CJ_E.
MOVE-CORRESPONDING GS_HEADER_BAPI TO GWA_CJ_E.
MOVE GWA_RETURN-MESSAGE TO GWA_CJ_E-MSG.
GWA_CJ_E-POSTING_NUMBER = LV_RECORD_NO.
APPEND GWA_CJ_E TO GIT_CJ_E.
GV_ERROR_RECORDS = GV_ERROR_RECORDS + GC_1.
ENDIF.
ENDLOOP.
ENDFORM. " SUB_BAPI_CALLHi Experts,
I have a requirement where in cash journal posting needs to be carried out automatically by an inbound interface on a periodic basis and at the start during cut over an upload program needs to be used to upload beg balance data . For this purpose I have used BAPI_CASHJOURNALDOC_CREATE to save cash journal entries along with BAPI TRANSACTION COMMIT.
Once the Data is successfully saved I am using FM FCJ_GET_DATA_FOR_SCREEN to get prerequisite data for the FM FCJ_POST_ALL which is used by the Standard cash journal program internally to post the saved data. ( I got this by debugging the standard transaction and both FMs are not yet released )
The issues I am facing is that the the FM FCJ_POST_ALL does not always post the data it behaves in random fashion i.e some times it posts the entries where as sometimes it does not post the entries.
I have tried using commit work after the FM but that also does not result in consistent behavior of the program. One more issue is the i am not allowed to use commit work in a an inbound proxy so how do i proceed ?
I am attaching the code for further analysis:
DATA: LIT_TCJ_TRANS_NAMES TYPE TABLE OF TCJ_TRANS_NAMES,
LWA_TCJ_TRANS_NAMES TYPE TCJ_TRANS_NAMES,
LV_WAIT TYPE BAPITA-WAIT VALUE '1',
LV_RECORD_NO TYPE SY-TABIX.
DATA : LIT_POSTING TYPE STANDARD TABLE OF ISCJ_POSTINGS,
LIT_WTAX_ITEMS TYPE STANDARD TABLE OF TCJ_WTAX_ITEMS,
LIT_SPLIT_POSTINGS TYPE STANDARD TABLE OF ISCJ_POSTINGS,
LIT_CPD TYPE STANDARD TABLE OF TCJ_CPD.
DATA: LV_BEG_BALANCE TYPE CJAMOUNT,
LV_TOTAL_RECEIPTS TYPE CJAMOUNT,
LV_TOTAL_PAYMENTS TYPE CJAMOUNT,
LV_TOTAL_CHECKS TYPE CJAMOUNT,
LV_RUN_BALANCE TYPE CJAMOUNT,
LV_RUN_CASH_BALANCE TYPE CJAMOUNT,
LV_NUMB_OF_REC TYPE I,
LV_NUMB_OF_PAYM TYPE I,
LV_NUMB_OF_CHECKS TYPE I.
DESCRIBE TABLE GIT_CJ LINES GV_TOTAL_RECORDS.
SELECT MANDT COMP_CODE TRANSACT_NUMBER LANGU TRANSACT_NAME LONG_TEXT
FROM TCJ_TRANS_NAMES
INTO TABLE LIT_TCJ_TRANS_NAMES
WHERE LANGU = GC_EN.
IF SY-SUBRC <> 0.
MESSAGE 'No Business Transaction maintained for Company Code in this client'(016) TYPE GC_I.
LEAVE LIST-PROCESSING.
ENDIF.
DESCRIBE TABLE GIT_CJ LINES GV_TOTAL_RECORDS.
LOOP AT GIT_CJ INTO GWA_CJ.
LV_RECORD_NO = SY-TABIX.
CLEAR: GS_HEADER_BAPI,
GS_CJ_KEY,
GWA_ITEMS.
REFRESH: GIT_ITEMS,
GIT_RETURN.
GS_HEADER_BAPI-COMP_CODE = GWA_CJ-BUKRS.
GS_HEADER_BAPI-CAJO_NUMBER = GWA_CJ-CJNR.
GS_HEADER_BAPI-CURRENCY = GC_PHP.
CLEAR LWA_TCJ_TRANS_NAMES.
READ TABLE LIT_TCJ_TRANS_NAMES INTO LWA_TCJ_TRANS_NAMES WITH KEY COMP_CODE = GWA_CJ-BUKRS
LANGU = GC_EN
TRANSACT_NAME = GWA_CJ-BTNAM.
IF SY-SUBRC = 0.
GWA_ITEMS-TRANSACT_NUMBER = LWA_TCJ_TRANS_NAMES-TRANSACT_NUMBER.
GWA_ITEMS-P_RECEIPTS = GWA_CJ-CJRAT.
GWA_ITEMS-TAX_CODE = GWA_CJ-TXCOD.
GS_HEADER_BAPI-BP_NAME = GWA_CJ-BPNAM.
GWA_ITEMS-POSITION_TEXT = GWA_CJ-POTXT.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = GWA_CJ-LIFNR
IMPORTING
OUTPUT = GWA_ITEMS-VENDOR_NO.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = GWA_CJ-KUNNR
IMPORTING
OUTPUT = GWA_ITEMS-CUSTOMER.
PERFORM SUB_DATE_FROMAT_BAPI CHANGING GWA_CJ-BLDAT
GS_HEADER_BAPI-DOC_DATE.
PERFORM SUB_DATE_FROMAT_BAPI CHANGING GWA_CJ-BUDAT
GS_HEADER_BAPI-PSTNG_DATE.
GS_HEADER_BAPI-REF_DOC_NO = GWA_CJ-XBLNR.
GS_HEADER_BAPI-ALLOC_NMBR = GWA_CJ-ALLNO.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = GWA_CJ-KOSTL
IMPORTING
OUTPUT = GWA_ITEMS-COSTCENTER.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = GWA_CJ-PRCTR
IMPORTING
OUTPUT = GWA_ITEMS-PROFIT_CTR.
APPEND GWA_ITEMS TO GIT_ITEMS.
CALL FUNCTION 'BAPI_CASHJOURNALDOC_CREATE'
EXPORTING
HEADER = GS_HEADER_BAPI
IMPORTING
COMPANY_CODE = GS_CJ_KEY-COMP_CODE
CASH_JOURNAL_NUMBER = GS_CJ_KEY-CAJO_NUMBER
FISCAL_YEAR = GS_CJ_KEY-FISC_YEAR
CASH_JOURNAL_DOC_NO = GS_CJ_KEY-POSTING_NUMBER
TABLES
ITEMS = GIT_ITEMS
RETURN = GIT_RETURN.
IF GIT_RETURN IS NOT INITIAL.
READ TABLE GIT_RETURN INTO GWA_RETURN WITH KEY TYPE = GC_E.
IF SY-SUBRC <> 0.
CLEAR GWA_CJ_S.
MOVE-CORRESPONDING GS_CJ_KEY TO GWA_CJ_S.
CLEAR GWA_RETURN.
READ TABLE GIT_RETURN INTO GWA_RETURN WITH KEY TYPE = GC_S.
IF SY-SUBRC = 0.
MOVE GWA_RETURN-MESSAGE TO GWA_CJ_S-MSG.
CLEAR GWA_RETURN.
READ TABLE GIT_RETURN INTO GWA_RETURN WITH KEY TYPE = GC_I.
IF SY-SUBRC = 0.
CLEAR GWA_CJ_E.
CONCATENATE GWA_RETURN-MESSAGE GWA_CJ_S-MSG INTO GWA_CJ_E-MSG SEPARATED BY GC_PIPE_FORMAT.
MOVE-CORRESPONDING GS_HEADER_BAPI TO GWA_CJ_E.
GWA_CJ_E-POSTING_NUMBER = LV_RECORD_NO.
APPEND GWA_CJ_E TO GIT_CJ_E.
GV_ERROR_RECORDS = GV_ERROR_RECORDS + GC_1.
ELSE.
IF P_TEST NE GC_X.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = LV_WAIT.
REFRESH:LIT_POSTING ,
LIT_WTAX_ITEMS ,
LIT_SPLIT_POSTINGS ,
LIT_CPD .
CLEAR: LV_BEG_BALANCE ,
LV_TOTAL_RECEIPTS ,
LV_TOTAL_PAYMENTS ,
LV_TOTAL_CHECKS ,
LV_RUN_BALANCE ,
LV_RUN_CASH_BALANCE ,
LV_NUMB_OF_REC ,
LV_NUMB_OF_PAYM ,
LV_NUMB_OF_CHECKS .
CALL FUNCTION 'FCJ_GET_DATA_FOR_SCREEN'
EXPORTING
I_COMP_CODE = GS_CJ_KEY-COMP_CODE
I_CAJO_NUMBER = GS_CJ_KEY-CAJO_NUMBER
I_DISPLAY_PERIOD_LO = GS_HEADER_BAPI-PSTNG_DATE
I_DISPLAY_PERIOD_HI = GS_HEADER_BAPI-PSTNG_DATE
IMPORTING
E_BEGINNING_BALANCE = LV_BEG_BALANCE
E_RUNNING_BALANCE = LV_RUN_BALANCE
E_RUNNING_CASH_BALANCE = LV_RUN_CASH_BALANCE
E_TOTAL_RECEIPTS = LV_TOTAL_RECEIPTS
E_TOTAL_REC_NUMBER = LV_NUMB_OF_REC
E_TOTAL_PAYMENTS = LV_TOTAL_PAYMENTS
E_TOTAL_PAYM_NUMBER = LV_NUMB_OF_PAYM
E_TOTAL_CHECKS = LV_TOTAL_CHECKS
E_TOTAL_CHECKS_NUMBER = LV_NUMB_OF_CHECKS
TABLES
E_POSTINGS = LIT_POSTING
E_WTAX_ITEMS = LIT_WTAX_ITEMS
E_SPLIT_POSTINGS = LIT_SPLIT_POSTINGS
E_CPD = LIT_CPD.
CALL FUNCTION 'FCJ_POST_ALL'
EXPORTING
I_COMP_CODE = GS_CJ_KEY-COMP_CODE
I_CAJO_NUMBER = GS_CJ_KEY-CAJO_NUMBER
I_CURRENCY = GS_HEADER_BAPI-CURRENCY
I_TYP = 'R'
I_DISPLAY_PERIOD_LO = GS_HEADER_BAPI-PSTNG_DATE
I_DISPLAY_PERIOD_HI = GS_HEADER_BAPI-PSTNG_DATE
* IMPORTING
* E_ERROR_NUMBER =
TABLES
ITCJ_POSTINGS = LIT_POSTING
ITCJ_WTAX_ITEMS = LIT_WTAX_ITEMS
ITCJ_SPLIT_POSTINGS = LIT_SPLIT_POSTINGS
ITCJ_CPD = LIT_CPD
CHANGING
P_BEG_BALANCE = LV_BEG_BALANCE
P_TOTAL_RECEIPTS = LV_TOTAL_RECEIPTS
P_TOTAL_PAYMENTS = LV_TOTAL_PAYMENTS
P_TOTAL_CHECKS = LV_TOTAL_CHECKS
P_RUN_BALANCE = LV_RUN_BALANCE
P_RUN_CASH_BALANCE = LV_RUN_CASH_BALANCE
P_NUMB_OF_REC = LV_NUMB_OF_REC
P_NUMB_OF_PAYM = LV_NUMB_OF_PAYM
P_NUMB_OF_CHECKS = LV_NUMB_OF_CHECKS.
COMMIT WORK.
ENDIF.
APPEND GWA_CJ_S TO GIT_CJ_S.
GV_SUCCESS_RECORDS = GV_SUCCESS_RECORDS + GC_1.
CLEAR GWA_CJ_S.
ENDIF.
ENDIF.
ELSE.
CLEAR GWA_CJ_E.
MOVE-CORRESPONDING GS_HEADER_BAPI TO GWA_CJ_E.
MOVE GWA_RETURN-MESSAGE TO GWA_CJ_E-MSG.
GWA_CJ_E-POSTING_NUMBER = LV_RECORD_NO.
APPEND GWA_CJ_E TO GIT_CJ_E.
GV_ERROR_RECORDS = GV_ERROR_RECORDS + GC_1.
ENDIF.
ENDIF.
ELSE.
GWA_RETURN-MESSAGE = 'Transaction Name does not correspond to any Transaction Number'(017).
CLEAR GWA_CJ_E.
MOVE-CORRESPONDING GS_HEADER_BAPI TO GWA_CJ_E.
MOVE GWA_RETURN-MESSAGE TO GWA_CJ_E-MSG.
GWA_CJ_E-POSTING_NUMBER = LV_RECORD_NO.
APPEND GWA_CJ_E TO GIT_CJ_E.
GV_ERROR_RECORDS = GV_ERROR_RECORDS + GC_1.
ENDIF.
ENDLOOP.
ENDFORM. " SUB_BAPI_CALL -
ABAP inbound proxy deep structure
Hello Experts,
This is regarding ABAP inbound proxy structures.
I have a structure in XI which looks like this
<Bill of Material> (0:unbounded)
<Material> (0:unbounded)
</Material>
</Bill of Material>
When I generate a proxy structure for this message, a similar structure will get generated in proxy with table types for 0:unbounded types.
Here, how can I loop through the structure and extract the materials associated with each Bill of materials? I have to call BAPI for creating material first if not exists and then BOM for each BOM in the structure.
Any help with sample coding is really appreciated.
Thanks
RickyHi Ricky !
Try with something like this:
LOOP AT your_bill_of_material_object.
WRITE: your_bill_of_material_object-material_field.
END-LOOP.
where the outer object is the bill of material and inside the loop make a reference to the current fields of the bill of material record. You may need another loop inside this one to recover each material record once your are pointing to the current bill of material.
Regards,
Matias. -
PI settings help
I am trying to transfer PR from ERP6.0 EHP4 to SRM7.0 using CPPR scenario.
I configured ERP/SRM and PI configuration in Integration directory.
But i get Reciever determination error in XML at ERP/SRM AND PI
RCVR_DETERMINATION">NO_RECEIVER_CASE_BE
Error Text: No receiver could be determined
In SRM, Inbound Message(reciever) is green but Call Inbound Proxy is giving below error.
<Trace level="1" type="System_Error">Application-Error exception return from pipeline processing! <Trace level="1" type="T">Application Error at Receiver... => ROLLBACK WORK</Trace>
<Trace level="1" type="T">System Error at Receiver... => ROLLBACK WORK</Trace>
I tested configuration in Integration directory.
Sender aggreeemnt is green
Reciever determination is red and giving below error.
Internal Error : You do not have sufficient authorization for this operation.
I have done below setting in Integration directory.
Business system setting.
1.Selected Business System BC_MM_MXX_594
2.Create communication channel(Gen_Rec_xi) as Receiver
for above Business system BC_MM_MXX_594.
-Use adapter type XI, http://sap.com/xi/XI/System SAP Basis7.xx and RFC MXX_Integration,
1.Selected Business System BC_SRM_SXX_300
2.Create communication channel(Gen_Rec_xi) as Receiver
for above Business system BC_SRM_SXX_300.
-Use adapter type XI, http://sap.com/xi/XI/System SAP Basis7.xx and RFC SXX_Integration.
-->>one doubt here? Should i have to create Comm channel for sender type also from ERP and SRM? pls confirm.
I created object in Integration directory as follows.
Create Object by selecting Business System BC_MM_MXX_594.
1)Selected Internal communication
2)Reciever Determination : BC_MM_MXX_594 PurchaseRequestERPSourcingRequest_Out
3)Specified Interface determination : BC_MM_MXX_594 PurchaseRequestERPSourcingRequest_Out BC_SRM_SXX_300.
4)Specified Reciever agreement BC_MM_MXX_594 BC_SRM_SXX_300 PurchaseRequestERPSourcingRequest_in(communication channel selected is Gen_Rec_xi)
5)Generated Objects and saved as CPPR_scenario.
6)Activated all objects created in CPPR_Scenario.
Pls suggest something wrong with Reciever determination?
How to find where the problem is located? at ERP or PI or SRM?.
Also onething i noted is Integrated configuration is empty in Integration directory.
Any configuration should be done for IOC.? pls confirm.
Regards
ChandraAlso i noticed below
In ERP xml ->Inbound message(SENDER).
Does this error indicate problem while sending from ERP to SRM or SRM to ERP.
because i can see sender service and interface is empty and SAP reciever is having ERP service.
however reciever does not fetched the corresponding(purchaseRequestxxxxxxx) interface names.
- <SAP:Sender>
<SAP:Service />
<SAP:Interface namespace="" />
</SAP:Sender>
- <SAP:Receiver>
<SAP:Party agency="" scheme="" />
<SAP:Service>BC_MM_MXX_594</SAP:Service>
<SAP:Interface namespace="http://sap.com/xi/APPL">QueryCodeList</SAP:Interface>
</SAP:Receiver>
<SAP:Interface namespace="http://sap.com/xi/APPL">QueryCodeList</SAP:Interface>
SOAP:mustUnderstand="1">
<SAP:Category>XIServer</SAP:Category>
<SAP:Code area="RCVR_DETERMINATION">NO_RECEIVER_CASE_BE</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText />
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack>No receiver could be determined</SAP:Stack>
<SAP:Retry>M</SAP:Retry>
Regards
Chandra -
Error/Exception handling in PI (Inbound Proxy)
Dear All,
I need some help in PI Error handling.
If PI sends data to an ABAP inbound proxy and an error occurs in PI because of type mismatch (e.g. Unable to convert date).
This error is persistent in the PI monitor, but how do I let the Sender know that an error has occured?
regards,
PiyushHi,
I understand that you have a doubt, if PI sends data to ABAP inbound proxy and an alert reaised due to type mismatch. Now, you would like to know how to acknowledge that sender to know about the alert?
First of all, get the payload and test in the message mapping, you will get know where exactly you got the error or check in the trace in Moni. You need to identify the issue and let the user know why exactly it failed. -
Upload data from abap program to abap inbound proxy
Hi,
I have requirement to upload flat file data to an internal table and call Inbound proxy abap class and pass all the internal table data to tha proxy clas method structure.
So could any one help me how to send/pass data to class, Please give some e.g.
thanks
bobby
Edited by: Bobby G on Nov 18, 2009 4:35 AMhi;
you may follow the following ways
1. create a report and by using GUI_upload, give the path as default , you can convert the flat file's data into internal table.
2. call that report in proxy method by returning parameter as a table, this table can use further in the proxy.
Another way, you have
1. Create a transparent table and by using the GUI_Upload in report, you may store the data.
2. from step 1, you may use data in the proxy.
Regards
Shashi -
How to create a abap proxy in sproxy netweaver 7.01
sproxy of nw 7.01 is completely different from previous version.For example in prev. versions there is message interface (inbound) (outbound) ...
but in 7.01 , i cannot find how to create an abap proxy class , there is only display proxy in context menu in all segments.(like service interface)
how can i create proxy ?
thanks a lotIn help sap.con says that
Expand the Service Interfaces node.
Select the outbound service interface.
Open the context menu and choose Create.
but there is no outbound service interface under service interface node
what can i do?
thanks a lot.. -
Generated Class is not called by Inbound Proxy
Uploading data to Ztable of ECC by using inbound proxy.
The messages are tranfered to SAP ECC from SAP XI.
Monitoring in SXMB_MONI in SAP XI DEV can see Success flag
Monitoring in SXMB_MONI in SAP ECC can see inbound message stored in QUEUES only.
I configured the Application Integration Engine as per the help document.
In Reciever XI Adapter set the addressing type URL.
Coding is correct in the method of the generated class.
Let me know if any configurations yet to be done.
Let me know how to proceed furthur.
ThankYou in Advance.hi
Go to SMQR of the ECC and register and activate the queues again.
Also ensure that u are implementing the correct methods of the proxy
EXECUTE-SYNCHRONOUS / EXECUTE-ASYNCHRONOUS
rgds
Arun -
Dear All,
We are planning build one proxy to recieve the file from thirdy party to SAP though PI system . So I have couple of questions in this regard.
1) How is this proxy in ABAP side trigger to run ? Do we need to schedule any background job run this in ECC side or PI will trigger the program to run ?
2) Can we put the files in apllication server using ABAP inbound proxy ?
3) Can we include selection screens to the inbound ABAP proxy program ?
4) Is there any options in proxy to handle DATA errors in the file ( Like in IDoc we can see 51 status if any failure and we can reprocess )
5) Can emails sent from proxy for any processing errors and data mismatch ( send and receive ) .
6) How can we monitor and reprocess the proxy ( sxmb_mony ? any )
Thanks all,
Vinay.Hi Vinay,
1) How is this proxy in ABAP side trigger to run ? Do we need to schedule any background job run this in ECC side or PI will trigger the program to run ?
Ans: When your File Communication channel picks a file, a process will start and once the message has been transformed in PI, PI will automaticall trigger the inbound Proxy.
2) Can we put the files in apllication server using ABAP inbound proxy ?
Ans: What do you mean by this? Are asking if the ABAP inbound proxy can save the message as a file in the application server? If yes, it is possible. You just need to modify the implemented class of your Inbound proxy to save a file in the app server.
3) Can we include selection screens to the inbound ABAP proxy program ?
Ans: Yes, you may add codes in your implemented class to call and use a selection screen.
4) Is there any options in proxy to handle DATA errors in the file ( Like in IDoc we can see 51 status if any failure and we can reprocess )
Ans: Yes, you may validate the incoming message of your inbound proxy and apply exception handling if error occured.
5) Can emails sent from proxy for any processing errors and data mismatch ( send and receive ) .
Ans: I think this is possible in ABAP coding. But if you wanted to send notification emails when transformation error occurs during mapping, you can do it using Alert Configuration.
6) How can we monitor and reprocess the proxy ( sxmb_mony ? any )
Ans: Since your scenario is File to ABAP proxy, the only way to reprocess is to send/place another file on the source directory to trigger the inbound proxy.
Let me know if this helps.
Regards,
Jenny -
Inbound Proxy created as Synchronous
Hello,
How do I determine the mode (synchronous/asynchronous) when I create a proxy? I am trying to create an asynchronous inbound proxy and when I hit "generate" in SPROXY I get a synchronous proxy.
Thanks,
MattHi mathew ,
How do I determine the mode (synchronous/asynchronous) when I create a proxy? I am trying to create an asynchronous inbound proxy and when I hit "generate" in SPROXY I get a synchronous proxy.
---> As per the requirement you have to create sync/async interfaces at ESR/IR in XI .Those interfaces only gets reflected in SPROXY at application server. So the type of interface you have created at XI according to that only you get the proxy in application server .
Regards, -
Hi All,
i have to call from PI inbound proxy on ecc using https(and xi adapter) . how to configure it ? where to import certificate ? nwa or strust ?
Regards
Maciejfor ABAP proxy security, refer - vhttp://help.sap.com/saphelp_nwpi711/helpdata/en/14/ef2940cbf2195de10000000a1550b0/frameset.htm
-
Trigger inbound proxy from ABAP
Hi Experts,
We have a requirement to trigger inbound proxy from within an ABAP program. Is it possible to trigger an inbound proxy from ABAP if so please guide me on how to achieve this?
Thanks
SanuThis requirement cant be achieved.
Maybe you are looking for
-
T400 - Bluetooth Software - Unattended Install instructions/procedure required.
Hi all, This is technically not a problem but an information request. I need the info because it will save me making a more clunky solution and I know that it exists because the factory preload must have used SOME method to get this working automatic
-
Why does my 3-year old MBP shut down and not start?
I have a mid-2010 MPB running Mt Lion and it is giving me fits. It consistently shuts down for no reason. I have taken it to the Genius bar and been told that I should add additional memory, so I have doubled the RAM with a new unit. The problem i
-
Printing multiple copies results in slow printing
Hello! We currently print a lot of color prints on our new printer (xerox WC 7345) but found out that it takes a lot longer than it use to take. Example: We print a catalog with 56 pages 10x. (pdf 68mb) from Adobe Acrobat Pro 8. The old printer would
-
hello to all, i have to save a file with a string..,with results of a test the file name must include time and date of my test, and has to append 2 underscore if my test failed some idea? Using LabVIEW 7.1
-
Hi gurús, In NB document type (PO), the condition type appears but not in UB documenty type. I would like to know, how to add an additional tab at PO header, for example, condition tab. Regards Enzo