Skip to end of metadata
Go to start of metadata


CATSDB CUSTOM IDOC TRANSFERMATION BETWEEN 2 DIFFERENT APPLICATION SERVERS
-        For this scenario Client 800 of application server SAPADM is the Sender and client 800 of application server SAP-REMOTE is the Receiver

1.Creating Logical Systems

o      Login using 800 client

o      Go to T. Code SALE

o      Expand Sending and Receiving Systems

o      Expand Logical Systems

o      Click on Define Logical System

o      Click on New Entries

o      Create CATSSENDER, ECC Logical Systems

o      Save and come back

o      Assign the CATSSENDERLogical System to client 800 of Application Server SAPADM

o      Assign the ECC Logical System to client 800 of Application Server SAP-REMOTE

2. Creating the RFCs
o      Go to T. Code SM59

o      Expand R/3 Connections

o      Enter RFC Name as CATSSENDER

o      Connection Type as 3

o      Language as EN

o      Client as 800

o      User as SAPUSER

o      Password as YESV13

o      Target host as SAPADM

o      Click on Remote logon button to test the RFC

o      Enter RFC Name as ECC

o      Connection Type as 3

o      Language as EN

o      Client as 800

o      User as SAPUSER                

o      Password as YESV123

o      Target host as SAP-REMOTE

o      Click on Remote logon button to test the RFC


 


 


 


 


 


 


 


 


 


 
 

 

 

 

 

 

 

 

 


 


 

 

 

 

 

 

 

 

 

 

 

 
 

 

 

 


 


3. Creating the Message Type

 
o      Go to T. Code WE81

o      Click on change, continue

o      Click on New Entries button

o      Give message type as ZCATSTIMEand description

o      Save and back


 


 


 


 

 

 

 

 
 

 

 

 

 

 

 

 

 

 

 


 


4. Creating the Segment

 
o      Go to T. Code WE31

o      Give segment name as ZSEGMENTTIME

o      Enter Short Text

o      Enter the Field Name and Data Element in the text boxes

o      Save, continue,

o      Click on Edit -> Set Release


 


 


 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 


5. Creating the Basic IDOC Object

 
o      Go to T. code WE30

o      Give obj. name as ZTIMEIDOC

o      Click on create

o      Select create new radio button, give description and continue

o      Select the IDOC obj name and click on create button

o      Enter the segment name which is create earlier

o      Select the check box if you want to make the segment mandatory

o      Enter 1 in minimum number 99999 in maximum number, continue

o      Save and back

o      Click on Edit -> Set Release


 


 


 


6. Creating Customer Distribution Model

 
o      Go to T. Code BD64

o      Click on change and Create model view button

o      Enter the short text and Technical name as CATSSENDER

o      Select the model and click on Add Message Type Button

o      Give the Sender as CATSSENDER,

o      Receiver as ECC,

o      Message Type as ZCATSTIME

o      Select the model view & click on Environment -> Generate Partner Profiles

o      Select Transfer IDOC Immediately and Trigger Immediately radio buttons

o      Click on Execute

o      You should get a list in green color which means it executed successfully.

o      Back to main screen, select the model view

o      Click Edit->Model view->Distribute

o      Click on continue

o      You should get a list saying model view is distributed successfully.


 



 


 


 



 



 



 



 


 


 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 


7. Checking the Port

 
o      Go to T. Code WE21

o      Expand Transactional RFC

o      Find the port from the list which is created using BD64 for ECC

 (Receiving system) RFC Destination.

 

8. Checking the Partner Profiles.

 

o      Go to T. Code WE20

o      Expand Partner Type LS

o      Select the Partner profile ECC

o      Double click on Message Type ZCATSTIME in Outbound parmtrs.

o      Check Receiver Port is assigned correctly

o      Check the Basic type as your Basic IDOC object.


 


 
9. Assigning the Message Type to Basic IDOC Object

 

o      Go to T. Code WE82

o      Click on Change & continue, New Entries button

o      Give the Message type asZCATSTIME

o      Give Basic Type as ZTIMEIDOC

o      Release as 4.6C

o      Save and back




 
10. Creating Inbound Function Module (Posting Program)

 
o       Go to T. Code SE37
o       Create a function Module ZCATSDB_TIMESHEET_SURESH
 
o       Set the Processing type as Remote Enabled Module and mode as start immed, in Attributes Tab.
 
o      Import Parameters

P_WORKDATE                    LIKE              CATSDB-WORKDATE
P_COUNTER                        LIKE              CATSDB-COUNTER
P_LSTAR                               LIKE               CATSDB-LSTAR
o      Export Parameters

o      Tables


S_PERNR                        LIKE          ZCATSPERNR


 

[PERNR is select option parameters in ZCUSTOMIDOC report program so that it should be passed to function module ZCATSDB_TIMESHEET_SURESHin tables section*.* And also in tables section we used ZCATSPERNR, which is a global structure, which contains four fields as

Ø    SIGN

Ø    OPTION

Ø    LOW

Ø    HIGH]

o      Exceptions

o      Source Code

 

FUNCTION zcatsdb_timesheet_suresh.

*"----------------------------------------------------------------------

*"*"Local interface:

*"  IMPORTING

*"     VALUE(P_WORKDATE) LIKE  CATSDB-WORKDATE

*"     VALUE(P_COUNTER) LIKE  CATSDB-COUNTER

*"     VALUE(P_LSTAR) LIKE  CATSDB-LSTAR

*"  TABLES

*"      S_PERNR STRUCTURE  ZCATSPERNR

*"----------------------------------------------------------------------

  TABLES: catsdb, edidc, edidd. " using structures of catsdb, edidc, edidd

 

 

  CONSTANTS: c_doctyp TYPE edidc-idoctp VALUE 'ZTIMEIDOC',  " idoc type

             c_segnam TYPE edidd-segnam VALUE 'ZSEGMENTTIME',   "segment type

             c_mestyp TYPE edidc-mestyp VALUE 'ZCATSTIME'.   " message type

 

*001 comment begin

*      creating internal tables with out header lines for catsdb, edidc, edidd and also

-          work areas

 

 

*001 comment end

 

  DATA: it_edidc  TYPE edidc OCCURS 0,   "  control [it_edidc] internal table with out header line

        it_edidd  TYPE edidd OCCURS 0, " data [it_edidd] internal table with out header line

        wa_catsdb TYPE it_catsdb1,  " work area for it_catsdb internal table

        wa_edidc  TYPE edidc,  " work area for it_edidc internal table

        wa_edidd  TYPE edidd,  " work area for it_edidd internal table

        wa_zsegmenttime TYPE zsegmenttime, " work area for zsegment internal table

        v_occmax  TYPE idocsyn-occmax,

        v_nbseg   TYPE i.

 

 

  CLEAR wa_catsdb. " clears work area of catsdb

  CLEAR wa_edidc.  " clears edidc work area


 


*002  comment begin

* Save the message type and the basic IDoc type in the control segment.

*002 comment end

  MOVE c_mestyp TO wa_edidc-mestyp. " assigning custom message type to edidc workarea

  MOVE c_doctyp TO wa_edidc-idoctp. " assigning custom idoc type to edidc workarea

 

 

*003 comment begin

* Retrieve the maximum number of segments in the basic IDoc type.

*003 comment end

 

  SELECT MIN( occmax ) FROM idocsyn INTO v_occmax WHERE idoctyp EQ c_doctyp AND segtyp EQ c_segnam.

 

*004 comment begin

* Save the whole CATSDB table content in the IT_ZCATSDB internal table.

*004 comment end

 

  SELECT pernr workdate lstar counter FROM catsdb INTO CORRESPONDING FIELDS OF TABLE it_catsdb WHERE pernr IN s_pernr AND workdate EQ p_workdate.

 

*005 comment begin

* Create a data segment for each line of IT_ZCATSDB.

*005 comment end

  IF sy-subrc EQ 0.

    LOOP AT it_catsdb INTO wa_catsdb WHERE pernr IN s_pernr.

      MOVE-CORRESPONDING wa_catsdb TO wa_zsegmenttime.

      CLEAR wa_edidd.

      MOVE c_segnam TO wa_edidd-segnam.

      MOVE wa_zsegmenttime TO wa_edidd-sdata.

      APPEND wa_edidd TO it_edidd.

      CLEAR wa_catsdb.

      CLEAR wa_zsegmenttime.

    ENDLOOP.

  ELSE.

    MESSAGE 'NO DATA FOUND FOR GIVEN SELECTION' TYPE 'I'.

  ENDIF.

*006 comment begin

* Count the number of data segments.

*006 comment end

 

  DESCRIBE TABLE it_edidd LINES v_nbseg.

 

*007 comment begin

 

* If the number of data segments exceeds the maximum allowed number,then display an error message.

*007 comment end

 

  IF v_nbseg GT v_occmax.

    MESSAGE 'IDOC ERROR Message' TYPE 'E000'.

  ENDIF.

 

  CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE' " for creating an catsdb idoc

  EXPORTING

  master_idoc_control = wa_edidc

* OBJ_TYPE = ''

* CHNUM = ''

  TABLES


  communication_idoc_control = it_edidc

  master_idoc_data = it_edidd

  EXCEPTIONS


  error_in_idoc_control = 1

  error_writing_idoc_status = 2

  error_in_idoc_data = 3

  sending_logical_system_unknown = 4

  OTHERS = 5

  .

*    IF sy-subrc <> 0.

*      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

*      WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

*    ENDIF.

 

ENDFUNCTION.

Save, check and activate

 

 

 

 

 


 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 


 

 

 
 

 

 

 

 

 

 

 

 

 


 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 


 

 
 

 

11. Assigning the Inbound Function Module to Basic Type & Message Type

 

o      Go to T. Code WE57

o      Click on change, continue, continue and New Entries Button

o      Enter the Module as ZCATSDB_TIMESHEET_SURESH Type as "F"

o      Basic Type as ZTIMEIDOC

o      Message Type as ZCATSTIME

o      Direction as 2

o      Save and back

 


 


 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 


 
Now Login in 800 client of Application Server SAP-REMOTE [Idoc Receiver]

 

12. Assigning the Inbound Function Module in ALE Table

 

o      Go to T. Code BD51

o      Click on continue, New Entries button

o      Give the Inbound Function Module ZCATSDB_TIMESHEET_SURESH

o      Give Input t. as 0 (zero)

o      Save and back

13. Creating Process Code

 

o      Go to T. Code WE42

o      Click on Change, New Entries Button

o      Give Process Code name as ZCATSDB, give Description & Save

o      Select Processing with ALE Services Radio button

o      Select Processing by Function Module Radio button

o      Click the ALE Table (arrow Icon) in Identification

o      Give the Function Module Name ZIDOC_INPUT_ZBAPI_STUD_MAS

o      Give maximum number of repeats 0

o      Save and back, back

o      Select the process code from the list & click on Logical Messages Icon

o      Give the Message Type asZCATSTIME

o      Save & Back, Save & Back, Save & Back

 

 

 

 

14. Changing the Customer Distribution model in receiving system

 

o      Go to T. Code BD64

o      Click on change and Create model view button

o      Enter the short text and Technical name as CATSECC

o      Select the model view & click on Environment -> Generate Partner Profiles

o      Select Transfer IDOC Immediately and Trigger Immediately radio buttons

o      Click on Execute

o      You should get a list in green color which means it executed successfully.

 

 

 

 

 

 

 

 

 

 

15. Assigning the Process Code to Message Type in Receiving System

 

o      Go to T. Code WE20

o      Expand Partner Type LS

o      Select the Partner Profile CATSSENDER

o      Double click on Message Type ZCATSTIME in Inbound parmtrs.

o      Give the Process Code asZCATSDB

o      Click on Trigger Immediately Radio button

o      Save & Back

o      Save & Back

16. Creating the Selection Program (Outbound Program)

 

-        Login in client 800.

-        Go to T. Code SE38

-        Create a Report Program as ZCUSTOMIDOC with the following code

 
REPORT ZCUSTOMIDOC

       NO STANDARD PAGE HEADING.
TABLES:catsdb. " using structure of cats db table

 

*000 comment begin

*      this selection screen contains one select option and one parameter

*000 comment end

SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS pernr FOR catsdb-pernr.

PARAMETER: workdate LIKE catsdb-workdate,

          LSTAR like catsdb-LSTAR,

          COUNTER like catsdb-counter.

 

SELECTION-SCREEN: END OF BLOCK b1 .

 

DATA: wa_val TYPE i.

wa_val = pernr-high - pernr-low.

 

*001 comment begin

*       calling custom function module

*001 comment end

CALL FUNCTION 'ZCATSDB_TIMESHEET_SURESH'

  EXPORTING

    p_workdate = workdate " passing workdate parameter

    p_LSTAR = LSTAR

    p_counter = counter

  TABLES

    s_pernr    = pernr. " passing pernr select option

 

IF sy-subrc EQ 0.

  MESSAGE i000(zaluri) WITH 'IDOCS CREATED FOR EMPLOYEES BETWEEN' pernr-low ' AND ' pernr-high .

*  MESSAGE i000(zaluri) WITH   'IDOCS CREATED FOR EMPLOYEES BETWEEN' PERNR-LOW 'TO' PERNR-HIGH.

*  gives information message if idocs are created for given  employees

 

ELSE.

  MESSAGE e000(zaluri) WITH 'NO IDOCS CREATED FOR EMPLOYEES' pernr-low  'TO' pernr-high. " gives error message

-          " if idoc is not created

 


 


17. Transferring the CATSDB records from sender Application Server SAPADM [ 800 client ]  to  receiver Application Server SAP-REMOTE [800 client]

 
-        Execute Report Program ZCUSTOMIDOC

-        Give the Range of PERSONNEL NO'S, Date, Activity Type, Counter to Transfer

-        Give Message Type as ZCATSTIME

-        Give Receiver Logical system as ECC

-        Execute

-        You should get the IDOC Number

-        Take the IDOC Number and go to T. Code WE05 & Execute

-        In Outbox you can see the IDOC Status

-        Select the status record in left side window

-        Double click on the Status record in right side window

-        You can see the Control Record, Data Record and Status Records for that IDOC

-        
If the ICON is green and the status code is 3, it means the IDOC is passed to PORT Successfully.



 



 





 



 




 
18. SENDING IDOCS FROM APPLICATION SERVER SAPADM TO APPLICATION SERVER SAP-REMOTE USING WEDI [TEST TOOL]

-        Go to T. Code WEDI & execute or T. Code WE19

-        Give idoc number it is generated recently

-        Continue & double click on segment to view data in segment

-        Click on EDIDC to give port, partner no, message type, partner type of receiver. [For sender no need to give any port no leave it as blank]

-        Click on Standard Outbound Processing button and click continue

-        You will get a message as idocs successfully transferred
 

 


Now Login in Receiver 800 client [Application Server SAP-REMOTE]

 
-        Go to T. Code WE05 & Execute

-        You can see the status record in left side window

-        If the status no is 53 and color is green, it means the IDOC is posted to Application successfully.

-        You can see the Log Information by double clicking on the status record in right side window.

-        Now in left side window, you can see the Control Record, Data Record & Status Record of the IDOC

-        Now go to T. Code SE16

-        Give the table name CATSDB& press F7

-        See the contents of the table

-        The table is updated with the catsdb records transferred from 800 client with our selection program.


 

  • No labels
  1. Guest

    its very nice to giving deep description like this ...thank you...