PR Data Send
PR Data Send
TYPES:BEGIN OF ty_po_derele,
client_key TYPE sy-uname,
Legacy_Po_Number TYPE ekko-ebeln,
status TYPE c LENGTH 1,
END OF ty_po_derele.
o_client->close( ).
* it_po_derel = it_data.
* wa_po_derel = it_po_derel[ 1 ].
* CONCATENATE wa_po_derel-client_key
CLEAR:lv_rel_flag,lv_del_flag.
IMPORT lv_rel_flag TO lv_rel_flag FROM MEMORY ID 'RELE'. " PR Release
IMPORT lv_del_flag TO lv_del_flag FROM MEMORY ID 'DERELE'." PR De-
Release
IMPORT lv_rel_flag1 TO lv_rel_flag1 FROM MEMORY ID 'REL'. " PO Release
IMPORT lv_po_derel TO lv_po_derel FROM MEMORY ID 'PODERE'. " PO De-
Release
IF lv_rel_flag = 'X'.
CONCATENATE '[' gs_json ']' INTO gs_json.
ENDIF.
IF lv_del_flag = 'X'.
REPLACE SUBSTRING '[{"prNumberList":' IN gs_json WITH '{ "prNumberList":
['.
DATA(lv_strlen) = strlen( gs_json ).
lv_strlen = lv_strlen - 2.
CONCATENATE gs_json+0(lv_strlen) ']}' INTO gs_json.
ENDIF.
IF lv_rel_flag1 = 'X'.
IF gs_json CS '"poAmendmentFlag": "N",'.
REPLACE SUBSTRING '"bidderAcceptanceFlag": "Y",' IN gs_json WITH ''.
ENDIF.
REPLACE SUBSTRING '"erpPoTermsAndConditionDat": "null",' IN gs_json WITH
'"erpPOTermsAndConditionDataList": null,'.
REPLACE SUBSTRING '"erpPoTermsAndConditionDa1": "null",' IN gs_json WITH
'"erpPOTermsAndConditionDataList2": null,'.
REPLACE SUBSTRING '"erpPoRequiredAttachmentDat": "null"' IN gs_json WITH
'"erpPORequiredAttachmentDataList": null'.
* REPLACE SUBSTRING '{"fileUrl": "","fileName": "","additionalInfo1":
"","documentId": ""}' IN gs_json WITH ''.
REPLACE SUBSTRING 'erpPoHeaderData' IN gs_json WITH 'erpPOHeaderData'.
REPLACE SUBSTRING 'erpPoVendorData' IN gs_json WITH 'erpPOVendorData'.
REPLACE SUBSTRING 'erpPoItemDataList' IN gs_json WITH
'erpPOItemDataList'.
REPLACE SUBSTRING 'erpPoAttachmentDataList' IN gs_json WITH
'erpPOAttachmentDataList'.
REPLACE SUBSTRING 'erpPoTermsConditionList' IN gs_json WITH
'erpPOTermsAndConditionDataList'.
* REPLACE SUBSTRING '"erpPOVendorData": [{' IN gs_json WITH
'"erpPOVendorData": {'.
* REPLACE SUBSTRING '}],"erpPOItemDataList":' IN gs_json WITH
'},"erpPOItemDataList"'.
CONCATENATE '[' gs_json ']' INTO gs_json.
ENDIF.
ENDIF.
* PERFORM format_json.
DATA: lo_http_req TYPE REF TO if_http_request.
* create object lo_http_req.
lo_http_req = o_client->request.
lo_http_req->append_cdata(
EXPORTING
data = gs_json ).
** "Set Timeout
CALL METHOD o_client->send
* EXPORTING
* timeout = CO_TIMEOUT_DEFAULT
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
http_invalid_timeout = 4
OTHERS = 5.
* "Read Response
CALL METHOD o_client->receive
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
OTHERS = 4.
IF sy-subrc = 0.
o_client->response->get_status(
IMPORTING
code = DATA(lv_http_status) " HTTP Status Code
reason = DATA(lv_status_text) " HTTP status description
).
ENDIF.
DATA(lr_email) = NEW zcl_mj_integration_dpc( ).
IF lv_http_status = 200. " Sending Status Code
DATA: ls_batch_save_ui TYPE bpc_loc_s_batch_save_ui.
DATA(lv_result) = o_client->response->get_cdata( ). " Getting Receiving
Status Code and Message.
IF lv_result IS NOT INITIAL.
* IF im_url = 'https://btp-is-a5ztyfq4.it-cpi021-
rt.cfapps.in30.hana.ondemand.com/http/PRimport'.
IF lv_rel_flag = 'X'.
IF it_data IS NOT INITIAL.
lt_data = it_data.
ENDIF.
IF lv_result CS '"Return_Code":"200"'.
lw_message = lv_result.
REPLACE '"Return_Code":"200",' IN lw_message WITH ' '.
REPLACE '"Return_Message":' IN lw_message WITH ' '.
i_s_log-extnumber = lt_data-pr_number."WA_DATA-pr_Original_No.
i_s_log-object = 'ZPCBLSRM'. "Object name
i_s_log-subobject = 'ZPRLOG'. "Object name
i_s_msg-msgty = 'S'. "Message type
i_s_msg-msgid = 'ZPCBLSRM'. "Message id
i_s_msg-msgno = '000'. "Message number
CALL METHOD me->slg_log_create
EXPORTING
i_s_log = i_s_log
i_s_msg = i_s_msg
message = lw_message.
ELSE.
lw_message = lv_result.
REPLACE '"Return_Code":"500",' IN lw_message WITH ' '.
REPLACE '"Return_Message":' IN lw_message WITH ' '.
i_s_log-extnumber = lt_data-pr_number."WA_DATA-pr_Original_No.
i_s_log-object = 'ZPCBLSRM'. "Object name
i_s_log-subobject = 'ZPRLOG'. "Object name
i_s_msg-msgty = 'E'. "Message type
i_s_msg-msgid = 'ZPCBLSRM'. "Message id
i_s_msg-msgno = '000'. "Message number
CALL METHOD me->slg_log_create
EXPORTING
i_s_log = i_s_log
i_s_msg = i_s_msg
message = lw_message.
** If any Error Occured during PR details sent to mjPRO Email Notification to be
sent.
lr_email->send_email(
EXPORTING
i_s_log = i_s_log
i_s_msg = i_s_msg
message = lw_message
email_for = 'PR_SENT'
).
ENDIF.
* ELSEIF im_url = 'https://btp-is-a5ztyfq4.it-cpi021-
rt.cfapps.in30.hana.ondemand.com/http/PRunreleasePR'. "Derelease PR response
ELSEIF lv_del_flag = 'X'.
IF lv_result CP '[]'.
lt_data_UNREL_PR = it_data.
i_s_log-extnumber = lt_data_UNREL_PR[ 1 ]-pr_number_list.
CONCATENATE 'Derelease PR No-' i_s_log-extnumber ' RFQ Not created'
INTO lw_message SEPARATED BY ' '.
* i_s_log-extnumber = lt_data-pr_number.
i_s_log-object = 'ZPCBLSRM'. "Object name
i_s_log-subobject = 'ZPRLOG'. "Object name
i_s_msg-msgty = 'I'. "Message type
i_s_msg-msgid = 'ZPCBLSRM'. "Message id
i_s_msg-msgno = '000'. "Message number
CALL METHOD me->slg_log_create
EXPORTING
i_s_log = i_s_log
i_s_msg = i_s_msg
message = lw_message.
ELSE.
ENDIF.
* lw_message = lv_result.
IF lt_source IS NOT INITIAL .
SORT lt_source BY document_no serial_no ASCENDING.
LOOP AT lt_source INTO DATA(LS_source).
lv_bnfpo = ls_source-serial_no.
SHIFT lv_bnfpo LEFT DELETING LEADING '0'.
* IF lw_message is INITIAL.
* CONCATENATE lv_bnfpo ',' INTO lw_message.
* else.
CONCATENATE lw_message lv_bnfpo INTO lw_message SEPARATED BY ','.
* ENDIF.
ENDLOOP.
ENDIF.
REPLACE FIRST OCCURRENCE OF ',' IN lw_message WITH '' .
i_s_log-extnumber = lt_source[ 1 ]-document_no."WA_DATA-
pr_Original_No.
CONCATENATE 'PR.No-' i_s_log-extnumber 'Items' lw_message 'RFQ
created' INTO lw_message SEPARATED BY ' ' .
i_s_log-object = 'ZPCBLSRM'. "Object name
i_s_log-subobject = 'ZPRLOG'. "Object name
i_s_msg-msgty = 'S'. "Message type
i_s_msg-msgid = 'ZPCBLSRM'. "Message id
i_s_msg-msgno = '000'. "Message number
CALL METHOD me->slg_log_create
EXPORTING
i_s_log = i_s_log
i_s_msg = i_s_msg
message = lw_message.
ENDIF.
lw_message = lv_result.
REPLACE '"Return_Code":"200",' IN lw_message WITH ' '.
REPLACE '"Return_Message":' IN lw_message WITH ' '.
i_s_log-extnumber = lt_po_data-po_number."WA_DATA-pr_Original_No.
i_s_log-object = 'ZPCBLSRM'. "Object name
i_s_log-subobject = 'ZPOLOG'. "Object name
i_s_msg-msgty = 'I'. "Message type
i_s_msg-msgid = 'ZPCBLSRM'. "Message id
i_s_msg-msgno = '000'. "Message number
CALL METHOD me->slg_log_create
EXPORTING
i_s_log = i_s_log
i_s_msg = i_s_msg
message = lw_message.
ELSE.
lw_message = lv_result.
REPLACE '"Return_Code":"500",' IN lw_message WITH ' '.
REPLACE '"Return_Message":' IN lw_message WITH ' '.
i_s_log-extnumber = lt_po_data-po_number."WA_DATA-pr_Original_No.
i_s_log-object = 'ZPCBLSRM'. "Object name
i_s_log-subobject = 'ZPOLOG'. "Object name
i_s_msg-msgty = 'E'. "Message type
i_s_msg-msgid = 'ZPCBLSRM'. "Message id
i_s_msg-msgno = '000'. "Message number
CALL METHOD me->slg_log_create
EXPORTING
i_s_log = i_s_log
i_s_msg = i_s_msg
message = lw_message.
ENDIF.
ELSEIF lv_po_derel = 'X'.
IF lv_result CS '"Return_Code":"200"'.
IF it_data IS NOT INITIAL.
it_po_derel = it_data.
ENDIF.
lw_message = lv_result.
REPLACE '"Return_Code":"200",' IN lw_message WITH ' '.
REPLACE '"Return_Message":' IN lw_message WITH ' '.
READ TABLE it_po_derel INTO wa_po_derel INDEX 1.
i_s_log-extnumber = WA_po_derel-Legacy_Po_Number."WA_DATA-
pr_Original_No.
i_s_log-object = 'ZPCBLSRM'. "Object name
i_s_log-subobject = 'ZPOLOG'. "Object name
i_s_msg-msgty = 'I'. "Message type
i_s_msg-msgid = 'ZPCBLSRM'. "Message id
i_s_msg-msgno = '000'. "Message number
CALL METHOD me->slg_log_create
EXPORTING
i_s_log = i_s_log
i_s_msg = i_s_msg
message = lw_message.
ELSE.
lw_message = lv_result.
REPLACE '"Return_Code":"500",' IN lw_message WITH ' '.
REPLACE '"Return_Message":' IN lw_message WITH ' '.
READ TABLE it_po_derel INTO wa_po_derel INDEX 1.
i_s_log-extnumber = WA_po_derel-Legacy_Po_Number.
i_s_log-object = 'ZPCBLSRM'. "Object name
i_s_log-subobject = 'ZPOLOG'. "Object name
i_s_msg-msgty = 'E'. "Message type
i_s_msg-msgid = 'ZPCBLSRM'. "Message id
i_s_msg-msgno = '000'. "Message number
CALL METHOD me->slg_log_create
EXPORTING
i_s_log = i_s_log
i_s_msg = i_s_msg
message = lw_message.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
"Close HTTP Connection
o_client->close( ).
ENDIF.
FREE MEMORY ID: 'RELE' , 'DERELE', 'REL','PODERE'.
* CLEAR :
wa_body,wa_itemlist,wa_precdocdtls ,wa_log_einv,lv_msg,it_response,it_body,it_addld
ocdtls,it_contrdtls,it_precdocdtls,it_itemlist,it_attribdtls,wa_url,gw_final.
ENDMETHOD.