0% found this document useful (0 votes)
232 views17 pages

Non-PI Synchronous FSCM Integration

Guía de instalación

Uploaded by

Julio Costantino
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (0 votes)
232 views17 pages

Non-PI Synchronous FSCM Integration

Guía de instalación

Uploaded by

Julio Costantino
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 17
Thanks for trying out Immersive Reader. Share your feedback with us. © Non-PI Synchronous FSCM Integration via WSRM and Direct Updates Non-PI Synchronous FSCM Integration via WSRM and Direct Updates Link to Content's target Space : http://wiki.sdn.sap.com/wiki/display/XI/Step-by-Step Guides Applies to: SAP Process Integration, ;AP NW 7.02 , EHp5, FSCM Summary This article is in continuation of the blog on POV - FSCM a Pinch-Point for PL. In this article, we would demonstrate couple of non-PI integration mechanisms for FSCM (Credit Management) Author(s): Abhishek Vinayaka & Mahaboob Basha Shaik Company: Deloitte Consulting LLP Created on: March Sth 2012 Author(s) Bio f Abhishek is working as a SAP PI SME at Deloitte Consulting LLP. He has over 8 years of experience in SAP PI and other integration technologies Basha is working as SAP Netweaver PI consultant for Deloitte Consulting LLP. He also has extensive knowledge on SAP ABAP & WD ABAP technologies Table of Contents Introduction, WS-RM Based Integration. Step 1: Navigate to SOAMANGER Step 2: Selection of the Server Proxy Name Step 3: Service Creation (Server) Step 4: Setting Up Bindings (Server) Step 5: Setting up Security Details (Server) Step 6: Choosing the Binding Name (Server) Step 7: Display End-point (Server) Step 8: Select the consumer proxy Step 9: Define Logical Port (Consumer) Step 10: Configure logical port (Consumer) Step 11: Set Up Service User for Web Service Consumption FSCM via Direct Update in ECC Step 1: Find BAdi for Credit Management Step 2: Find the BAdi implementation Step 3: Standard Credit Check Code Step 4: Implement an Implicit Enhancement Introduction SAP FSCM or Financial Supply chain management for Credit Management is a widely used SAP Application package on an SAP implementation, The business logic for the credit management function exists with the SAP FINBASIS core component. Interestingly the integration medium used for the above is SAP PI. SAP Pl provides out of the box integration content around FSCM. Ste cet angenet 4 tens ‘w owece = prec pece Tomas Swerscuanrseu_sieercansiver a The core scenarios involved in FSCM are Creditworthiness Query and Credit Exposure updates. ‘The FSCM Creditworthiness calls are synchronous in nature and are triggered whenever a configured document type like Sales Order/Delivery/Invoice is changed or created. ‘Though the FSCM business function lies on the same box as ECC, the driver for using PI, in my opinion was to leverage SAP FSCM as a separate SAP product for clients not implementing ECC. ‘This PI integration can sometimes become a major pinch-point of PI and operations in general This article is divided into 2 sections 1. WSRM based Integration 2. Direct Update. ‘WS-RM Based Integration To achieve WS-RM based integration for Synchronous FSCM calls, the ECC system should be on NW 7.02, Enhancement pack 5. With EphS, the system is delivered with the Client and the Server proxies, this can been see using the transaction SPROXY, under the component FINBASIS, and the namespace as shown below. > #2 Faulimessagetypes 0 Si messayerpes = @ sence nietaces SusinessPanneriDeyElementsQuery_Out @ CreditagencyMonitorNotificaton_In ‘B CredittgencyMonitorQuery_Out B CreditagencyReportQueny_Out B CreditCommitmentNoiification_in To achieve a WS-RM based integration, Web service ports and End-points need to be defined for both the Client (CreditCommitmentQuery_Out) as well as Server (CreditCommitmentQuery_In) proxies. (cE ln Teche Contepenteon GME a Sema Con Logs ard Treems Mentoreg rove Nectar tr annette we art ef eap wet Src ra me tr cer ‘tutes Scene Comat Ccatgrebe ‘come aten ofan hates carne ‘sescoton fe (Gea pcan ea nee eof eras wa canine rms hatha betas 9 Sat Rage (ee accnetbonsaect ag iw crt wan anurrert pov ysis ar traces Acheson net rm sarge a ent Ye ecto pete, section, a contre ropes Let us now look at the configuration steps in details. The configuration would be done, using the transaction SOAMANGER Step 1: Navigate to SOAMANGER Click “Application and Scenario Communication” tab and click “Single Service, administration link. Step 2: Selection of the Server Proxy Name Step 3: Service Creation (Server) Click “Configuration” tab and click “Create Service”. Step 4: Setting Up Bindings (Server) ‘These can be any free string entries following a particular naming convention Eye Step 5: Setting up Security Details (Server) Configure the web service details, including the Security and authentication details. sr at ion ot So ei CETTE SOUR aca pun tea [Gist [See | Gees) ‘onrguition or Won Sores WS. CREOTHORTHNESS poh VS _Creartinaee striae setae opsterepsate Communication Security Properties fr Tranwpuet Guar pe Sree Connuncatine ete asrinbsstint OSS overheat cheesey) Terme are TPR! (Caspanen: Meme Sree ene one eee Sante peed Ne Surtees iis ee ed sasane [nono kaise reer [oo horeryetnecone snertesos rod) “rasan Cannel Ahenition eo ) Weer oracovont TDhesoe St ch cee Pisnpesincr wang as tee B ae a [iter ano yart hxsoacauinae [Pismo Sen ora Sa, Step 6: Choosing the Binding Name (Server) On the overview tab, you can choose the binding name set in step 4, and click on display selected binding WSDL. | IEEE RTS RE as eee ee fact sone recta Ratner n “SOAP Appian: URN SAP.COMt SCAP_XMS APPLICATION XIP- eecee Wctseoes eS ones tinction Frsmcarsomorra Step 7: Display End-point (Server) The above would display the generated Web Service end point URL for the server proxy a a cm se Sereoe porte + SRneteeseae Se an cs fommenene a ie Speen key Sr ame (Goesar conn me ATEN Prone oe pone RECN We eararts 3B Step 8: Select the consumer proxy The consumer proxy is CreditWorthinessQuery_Out Step 9: Define Logical Port (Consumer) Click on configuration and the define logical port Step 10: Configure logical port (Consumer) ‘The URL obtained on Step 7 of Server Proxy configuration, should be set up as the WSDL access URL, also a valid server user with the roles of WS-Administrator should be configured ‘SOA Management General Configuration Settings ecriton (Ved. Wovhress Conran Type (@SOL Based Contain Crt Contuion Process Hep eon tina WSDL Aczess Settings WSDL Base. @ Via HTTP Access OM Fie ‘WSDL Lovation URL for WSDL Access: * _-‘FABIDEDBABAGFTEGS258C7A/wed I/alinenelws_poleyidocument'sep-clenf=005 WSDL Acosee User we WSDL Assess User Passwort [eeeeeee [anpy Satin | [Aeniy Seunas | Step 11: Set Up Service User for Web Service Consumption On the consume security tab, set up the user/password for the service ust web services having access to execute ‘Wob Service Configuration of Prosy Definition: CO_UKNIRS_CREDIT WORTHINESS eck ta Desi Time Details Becivin seerch Cio | Save [Cant Configuration for Lonical Port ‘WS_CREDIT. WORTHINESS* Adctionalinforetion y Messsoira y Transport setings Xliteoreion Operetion svectic Configuration of Consumer Settinge additional te WSDL. Document Information LP-WS_CREDIT_WORTHIESS: | u 1 DPaceword oes Paavord [seeeeeee] | ‘Authentication ‘Auberticelien Methox: sapsp.HTTPEasic Transport Security Secure Canmunictions ss. Sloneture Expected: fase Enerypien Expecte fase ‘Add slgnture: flor Encrypt: tase ‘The point to point configuration is now ready, and can be monitored via SXMB_MONI. FSCM via Direct Update in ECC This solution was driven by the need for Direct Update solution which has been illustrated in the blog POV - FSCM a Pinch-Point for PI. ‘This solution was designed to have FSCM via Direct update eliminating the need of PI integration for Synchronous FSCM calls, keeping intact the funetionality of Credit Cheek which involves (CreditCommitmentQuery_Out & CreditCommitmentQuery_In Proxies). Viability of this approach was that the Credit Worthiness Scenario has one to one mapping without any additional logic involved in the mapping. And this mapping is handled in ABAP instead of PI Prerequisites: Standard FSCM Credit Worthiness Scenario has been enabled in ECC/PI Step 1: Find BAdi for Credit Management BE ght ss BW documentation Defniton name =a) Defrition short text [BAdi for SAP Crede Maragamant 1 Step 2: Find the BAdi implementation: BE SE SBE et. documentary documentation Implementaton Narre ‘implementation Short Text Step 3: Standard Credit Check Code From the implementation class of the BAdi - ZCL_IM_BADI_SD_CM, check for the method FSCM_CREDIT_CHECK_ORDER and find the code where the Credit Check is being done asCiens Baten Clnes ZC BA SOON PY SF PRGO sy Fh) A AOD |B voce preyemer | some | frubicsecton [elrotecteesecton ‘method (i Os eFC CoE neve Step 4: Implement an Implicit Enhancement Navigate into this Method and have an implicit enhancement (Code) created at the start of the method and use the code snippet in the enhancement and activate it, Note: This method is the place where the actual PI calls for the FSCM Credit Check happen and using this implicit enhancement we would force FSCM Direct Update in ECC and EXIT before the actual PI call. IIThis is a code Block * Data Declarations that would be used for local mapping of structures DATA: Is_queryl TYPE ukmr3_credit_worthiness_query, Is_responsel_ TYPE ukmr3_cw_response, Ixexcl TYPE REF TO ex_root, Ixail TYPE REF TO cx_ai_system_fault, e_messagel LIKE LINE OF et_retum, Itextl TYPE string, * Data declaration to get the input data to the proxyDATA: Is_input, ness_q_in, I_ouput_ TYPE ukm_credit_worthiness_r_out, Ischk_sch TYPE ukm_credit_worthiness_query_cl Ischk_schl_ TYPE ukmr3_cw_checkingschedulel, Iref_wor_qu TYPE REF TO cl_ukm_credit_worthiness_query, Is_in_cre_par TYPE ukm_ew_creditor_party, Is_out_cre_par TYPE ukmr3_cw_creditor_party2, Is_in_sel_par TYPE ukm_cw_seller_party, Is_out_sel_par TYPE ukmr3_ew_seller_party2, Is_in_pro_eat TYPE ukm_ew_product_category, Is_out_pro_eat TYPE ukmr3_Cw_product_category2, **Using the below method convert the Import Parameters coming into Check Credit Method - query data being sent to PI CALL METHOD cl_ukm_xi_facade_13_50->credit_query_convert_outbound EXPORTING i_partner = i_partner i_eredit_sgmnt = i_credit_sgmnt i amount — =i_amount i currency =i_curteney icheckrile = i_checkrule i checkseverity =i_checkseverity iretrieval_flag = i_retrieval_flag i effective date =i effective date i log_reference = i_log_reference it_schedule = it_schedule IMPORTING es_query == Is_queryl * Map the values from Is_queryl to mation of the segment id ;_input and than calling the inbound proxy of FSCM* infor MOVE: s_query l-credit_worthiness_query-credit_worthiness_query-credit_segment_internal_id TO Is_input-credit_worthiness_query-credit_worthiness_query-credit_segment_internal_id, * information of the amount to be checked —_1Is_query|-credit_worthiness_query- credit_worthiness_query-checked_amount-currency_code TO Is_input-credit_worthiness_query-credit_worthiness_query-checked_amount-currency_code, Is_query1-credit_worthiness_query-credit_worthiness_query-checked_amount-value TO Is_input-credit_worthiness_query-credit_worthiness_query-checked_amount-value, * Details of the rule code Is_queryl-credit_worthiness_query-credit_worthiness_query- checking_rule_code TO Is_input-credit_worthiness_query-credit_worthiness_query-checking_rule_code, * Details of severity code 1s_queryl-credit_worthiness_query-credit_worthiness_query- checking_severity_code TO |s_input-credit_worthiness_query-credit_worthiness_query-checking_severity_code, * Details of permission indicator Is_query1-credit_worthiness_query-credit_worthin cat_permission_indicator TO Is_input-credit_worthiness_query-credit_worthiness_query-credit_agency_permission_ind, s_query- LOOP AT Is_queryl-credit_worthiness_query-credit_worthiness_query-checking_schedule INTO Is_chk_schl MOVE: Is_chk_sch1-valuation_date TO Is_chk_sch-valuation_date, Is_chk_schT-checked_amount TO Is_chk_sch-checked_amount, Is_chk_schl-credit_segment_intemal_id TO ls_chk_sch-credit_segment_internal_id, cchl-debtor_party-scheme_id TO Is_chk_sch-debtor_party-scheme_id, 1k_seh1 ~debtor_party-scheme_ageney_id TO Is_chk_sch-debtor_party-scheme_agency_id, k_sch1 -debtor_party-value TO ls_chk_sch-debtor_party-value. APPEND Is_chk_sch TO Is_input-credit_worthiness_query-credit_worthiness_query-checking_schedule. CLEAR Is_chk_sch ENDLOOP. * setting up values of DEBTOR PARTYMOVE: s_queryl-credit_worthiness_query-credit_worthiness_query-debtor_party-intemal_id-scheme_id TO Is_input-credit_worthiness_query-credit_worthiness_query-debtor_party-internal_id- scheme_id, s_query l-credit_worthiness_query-credit_worthiness_query-debtor_party-internal_id- scheme_agency id TO Is_input-credit_worthiness_query-credit_worthiness_query-debtor_party-internal_id- scheme_agency id, Is_queryl-credit_worthiness_query-credit_worthiness_query-debtor_party-internal_id-value O Is_input-credit_worthiness_query-credit_worthiness_query-debtor_party-internal_id-value, setting up values of CREDITOR PARTY _|s_queryl-credit_worthiness_query- credit_worthiness_query-creditor_party-intemal_idescheme_id TO Is_input-credit_worthiness_query-credit_worthiness_query-creditor_party-internal_id- scheme_id, Is_queryl-credit_worthiness_query-credit_worthiness_query-creditor_party-internal_id- scheme_agency_id TO Is_input-credit_worthiness_query-credit_worthiness_query-creditor_party-intemnal_id- scheme_agency_id, Is_queryl-credit_worthiness_query-credit_worthines TO |s_input-credit_worthiness_query-credit_worthines query-creditor_party-internal_id-value :_query-creditor_party-intemnal_id-value, * setting up values of seller party Is_queryl-credit_worthiness_query-credit_worthiness_query- seller_party-internal_id-scheme_id TO Is_input-credit_worthiness_query-credit_worthiness_query-seller_pat ternal_id-scheme_id, 1s_queryl-credit_worthiness_query-credit_worthiness_query-seller_party-internal_id- scheme_agency_id TO Is_input-credit_worthiness_query-credit_worthiness_query-seller_party scheme_agen ternal_id- Is_query]-credit_worthiness_query-credit_worthiness_query-seller_party-internal_id-value TO Is_input-credit_worthiness_query-credit_worthiness_query-seller_party-internal_id-value, * setting up values of product category Is_queryl-credit_worthiness_query- credit_worthiness_query-product_category-internal_id-scheme_id TO Is_input-credit_worthiness_query-credit_worthiness_query-product_category-internal_id- scheme_id, Is_queryl-credit_worthiness_query-credit_worthiness_query-product_category-intemnal_id- scheme_agency_id TO Is_input-credit_worthiness_query-credit_worthiness_query-product_category-internal_id- scheme_agency_id, s_query L-credit_worthiness_query-credit_worthiness_query-product_category-internal_id-value TO Is_input-credit_worthiness_query-credit_worthiness_query-product_category-internal_id- value. +* Call the inbound Proxy with the data mapped in previous steps ” ** This is the Proxy method that is called when the FSCM inbound call is made to ECC ** CREATE OBJECT Iref_wor_qu. TRY. CALL METHOD lref_wor_qu->ii_ukm_credit_worthiness_query~execute_synchronous EXPORTING input = Is_input IMPORTING: ‘output = Is_ouput, CATCH ex_ukim_ew_check_fault INTO Ix_exel. c1->get_text(). -008(ukm_pi) WITH Itext! INTO e_message|-message. e_messagel-type -msgty. evmessagel-id = sy-msgid. e-messagel-number = sy-msgno. e_messagel-message_v1 = Itext] APPEND e_messagei TO et_return. RAISE credit_check_failed. ENDTRY. * From the response of the Inbound Proxy, map accordingly to the corresponding structures and tables to be converted into the return parameters of the Check Credit Method MOVE: |s_ouput-credit_worthiness_response-credit_worthiness-credit_segment_intemal_id TO Is_responsel-credit_worthiness_response-credit_worthiness-credit_segment_internal_id, |s_ouput-credit_worthiness_response-credit_worthiness-indicator TO Is_responsel -credit_worthiness_response-credit_worthiness-indicator, Js_ouput-credit_worthiness_response-ctedit_worthiness-debtor_party_blocked_indicator TO Is_responsel-credit_worthiness_response-credit_worthiness-debor_party_blocked_indicator, Is_ouput-credit_worthiness_response-credit_worthiness-debtor_party_attntn_indicator TO Is_responsel-credit_worthiness_response-credit_worthiness-debior_party_special_attention, |s_ouput-credit_worthiness_response-credit_worthiness-horizon_end_date TO Is_responsel-credit_worthiness_response-credit_worthiness-horizon_end_date, * setting up value for DEBTOR PARTY _ |s_ouput-credit_worthiness_response- credit_worthiness-debtor_party-internal_id-scheme_id TO Is_responsel -credit_worthiness_response-credit_worthiness-debtor_party-internal_i scheme_id, 1s_ouput-credit_worthiness_response-credit_worthiness-debtor_party-internal_id- scheme_agency_id TO Is_response1-credit_worthiness_response-credit_worthiness-debtor_party-internal_id- scheme_agency_id, |s_ouput-credit_worthiness_response-credit_worthiness-debtor_party-internal_id-value TO Is_responsel -credit_worthiness_response-credit_worthiness-debtor_party-internal_id-value, * setting up value for RATING __ |s_ouput-credit_worthiness_response-credit_worthiness-rating TO Is_responsel-credit_worthiness_tesponse-credit_worthiness-rating, * setting up value for RISK_CLASS __Is_ouput-credit_worthiness_response-credit_worthiness- risk_class TO Is_responsel-credit_worthiness_response-credit_worthiness-risk_class, * setting up value for CREDIT_LIMIT _|s_ouput-credit_worthiness_response- credit_worthiness-credit_limit TO Is_response! -credit_worthiness_response-credit_worthiness-credit_limit, Is_ouput-credit_worthiness_response-credit_worthiness-checking_description[] TO Is_responsel -credit_worthiness_response-credit_worthiness-checking_description[] * getting the values of the creditor partyLOOP AT Is_ouput-credit_worthiness_response- credit_worthiness-creditor_party INTO Is_in_cre_par. MOVE: Is_in_ere_par-intemal_id-scheme_id ‘TO Is_out_ere_par-internal_id-schem Is_in_cre_par-internal_id-scheme_agency_id TO Is_out_ore_par-internal_jdescheme_agency_id, Is_in_cre_par-internal_id-value TO Is_out_cre_par-internal_id-value. APPEND Is_out_cre_par TO Is_responsel-credit_worthiness_response-credit_worthiness creditor_party. CLEAR Is_out_cre_par. ENDLOOP. * getting the values of the seller partyLOOP AT Is_ouput-credit_worthiness_response- credit_worthiness-seller_party INTO Is_in_sel_par. MOVE: Is_in_sel_par-intemnal_id-scheme_id TO Is_out_sel_par-internal_id-scheme_id, 1s_in_sel_par-internal_id-scheme_agency_id TO Is_out_sel_par-internal_id-scheme_agency_id, Is_in_sel_par-internal_id-value TO Is_out_sel_par-internal_id-vaiue. APPEND Is_out_sel_par TO Is_response|-credit_worthiness_response-credit_worthiness- seller_party. CLEAR Is_out_sel_par. ENDLOOP. * getting the values of product categoryLOOP AT Is_ouput-credit_worthiness_response- credit_worthiness-product_category INTO Is_in_pro_cat. MOVE: Is_in_pro_cat-internal_id-scheme_id TO Is_out_pro_cat-internal_id-scheme_id, Is_in_pro_cat-internal_id-scheme_ageney_id TO Is_out_pro_cat-internal_id-scheme_agency_id, Is_in_pro_cat-internal_id-value TO Is_out_pro_cateinternal_id-value. APPEND Is_in_pro_cat TO Is_responsél-credit_worthiness_response-credit_worthiness-product_category. CLEAR Is_in_pro_cat. NDLOOP. * Use the data populated with the proxy response to convert it to the Export parameters of the Check Credit Method CALL METHOD el_ukm_xi_facade_13_5 EXPORTING is_tesponse __=1s_responsel IMPORTING et_credit_messages = et_credit_messages e_check_confirmation = e_check_confirm erating =e rating ectiskclass ~€_riskclass e_creditlimit e_creditlimit : limit_curreney Jimit_curreney e limit_valid_ to =e Jimit_valid_to e-blocked_indicator =e_blocked_indicator attntn_indicator = e_attntn_indicator credit_horizon_date = e_credit_horizon_date. }->eredit_query_convert_inbound es * EXIT statement to come out of the method. EXIT * This EXIT statement would force the execution out of this method by-passing the standard code where PI calls are made Related Content Please include at least three references to SDN documents or web pages. Consuming Services in SOA Manger POV - FSCM a Pinch-Point for PI FSCM Configuration

You might also like