Idoc Processing Tips and Program to convert Russian Cyrillic Characters to Latin Character set
Tips for Idocs Processing once they have been created by the relevant Program Note – Whole Analysis is based upon HR master Data Idocs with Message Type HRMD_A, you can see Idoc status in Transaction WE02 or WE05. 1) To Process Outbound Idocs with Status 30 “Ready to Dispatch”, Use Standard Transaction BD87 or Report Program RSEOUT00 as follows :- Report Program – RSEOUT00 Either Give Idoc Numbers or you can save variant as follows as per your requirements- Variant Details: – (Please refer screen shot below) Basic type – HRMD_A02 Port of recipient – A000000002 Partner Type of Recipient – LS Partner number of recipient – PK1_020 Logical message – HRMD_A 2) To Process Inbound Idocs with Status 64 “Idoc Ready to be Trasferred to the Application”,Use Standard Report Program RBDAPP01 as follows :- Either Give Idoc Numbers or you can save variant as follows as per your requirements- Variant Details: – (Please refer screen shot below) IDoc status – 64 Message type – HRMD_A Sender partner type – LS Sender partner no. – PK3_015 3) If the Outbound Idoc results into an Error at the inbound side because of wrong value in some particular field of the a segment. In this case you can first Edit the concerned Idoc, Go to We02 and give IDoc number,Click on the Icon Which is Just left to the concerned Segment that you want to Edit as follows – (I have taken screen shot of an IDoc which is not in Error so don’t get confused by it) It will Take you to the following Screen – (Here go to Data record ->Display->Change,to go to Edit Mode) Make Changes as Shown and Save, this will change the status of IDoc to 32 “Idoc was Edited”. Now Execute the Standard Report Program RC1_IDOC_SET_STATUS to change the status from 32 to 30 as shown – Mention Idoc Number at selection Screen Once this is done again go to the step 1 as above and execute Program RSEOUT00 to send the Outbound Idoc. 4) Sending HR Master Data Idocs from a Unicode System to a Non Unicode system can lead into error due to the Character set. For e.g If Infotype PA0002 for a Russian Employee contains “Russian Cyrillic Characters” then this may lead into error when IDoc is being send from a Unicode to Non Unicode System as non Unicode system will not Support “Cyrillic Characters”. To Resolve this Issue Either you can try to mask out the particular fields which are having Cyrillic characters before sending the idoc out to the receiver system (Either by transaction BD64 or Coding in User-Exit)or you can write a piece of code which will convert the Cyrillic field values to latin character set values. In Both the cases (Excluding BD64 option) the coding needs to be done in the User Exit (Function Exit),if we are using standard functionality to send and create idocs. For HR message type HRMD_A, the relevant Enhancement is – Enhancement name – RHALE001 (Exit Name) , Text -HR-CA: Enhancement for ALE functionality in HR, Function to be used for Outbound Processing – EXIT_SAPLRHA0_001. Solution 1- You can simply code as per your requirement to mask out the particular field in the Z include of the above said FM as follows – IF l_pdat-INITS is not initial . ” l_pdat LIKE e1p0002. l_pdat-INITS = SPACE. ENDIF. Solution 2- Write a Code in the same include of the concerned Function Exit which will convert the Russian Cyrillic Characters to Latin characters. I have pasted the sample code as follows – REPORT Z_AMIT_RU_TO_EN . TABLES: P0002, PA0002. data: l_name like p0002-nachn, l_name_en like p0002-nachn. select single nachn into l_name from pa0002 where pernr = ‘00000002’. perform Translate_Ru_to_En using l_name changing l_name_en. write: ‘Russian : ‘ ,l_name. write:/ ‘English : ‘,l_name_en. FORM Translate_Ru_to_En USING P_TEXT_CYRILLIC CHANGING P_TEXT_ENGLISH. data: rb(100) type c. data: rs(100) type c. RB = ‘АAБBВVГGДDЕEЖZЗZИIКKЛLМMНNОOПPРRСSТTУUФFХHЦZЧHШSЩ SЭAЮUЯIЬ”Ъ”ЙY’. RS = ‘аaбbвvгgдdеeжzзzиiкkлlмmнnоoпpрrсsтtуuфfхhцzчhшsщsзaюuЯiЬ”Ъ”Йy’ REPLACE ‘Ш’ IN p_text_cyrillic WITH ‘Sh’ respecting case. REPLACE ‘ш’ IN p_text_cyrillic WITH ‘sh’ respecting case. REPLACE ‘Щ’ IN p_text_cyrillic WITH ‘Sch’ respecting case. REPLACE ‘щ’ IN p_text_cyrillic WITH ‘sch’ respecting case. REPLACE ‘Ж’ IN p_text_cyrillic WITH ‘Zh’ respecting case. REPLACE ‘ж’ IN p_text_cyrillic WITH ‘zh’ respecting case. REPLACE ‘Ч’ IN p_text_english WITH ‘Ch’ respecting case. REPLACE ‘ч’ IN p_text_english WITH ‘ch’ respecting case. translate p_text_cyrillic using rB. translate p_text_cyrillic using rS. p_text_english = p_text_cyrillic. ENDFORM. ” Translate_Ru_to_En Note- This Document is Purely Based on my Practical knowledge and Problems that I faced in my Project.