Skip to Content

You can find how to create / modify a Software Component outside Integration Builders in my previous blog, XI – Reverse Engineering #1 – Software Component.  You better have a look at it before reading this blog below because it is a continuity of the previous blog.

Jar Dependencies

The only jar file required for using this java API is ojdbc14.jar which can be downloaded from http://download.oracle.com/otn/utilities_drivers/jdbc/9208/ojdbc14.jar for database connectivity.

Table Dependencies for SWC

There are 7 ids (like guids) generated which should be unique throughout XI.

They are as follows (same names used in source code in previous blog):

  • ownerrepid
  • relationid
  • objectid
  • versionid
  • versionsetid
  • versionsetid_2_dev
  • versionsetid_1_cons

(Technically swcguid is equal to objectid since the object we are dealing with is SWC)

Below table gives you the complete information for primary key / foreign key relationships in SAP database tables.

Table Name

Field No

‘ownerrepid’ is used in the following tables

xi_pdevline

3

‘relationid’ is used in the following tables

xi_pverrelation

1

xi_pversion

3

‘objectid’ is used in the following tables

xi_dircacheevent

2

xi_dircacherclview

1,3,4(swcguid)

xi_pverrelation

4

xi_pversion

2

xi_pversionedobj

1

xi_pvsetelement

2

xi_pvsetelemhist

3

xi_repcacheevent

1

xi_repchangelist

2

xi_repdataadmin

2

xi_repkeyswc

1

‘versionid’ is used in the following tables

xi_pverrelation

8

xi_pversion

1

xi_pvsetelement

3

xi_pvsetelemhist

4

xi_repdataadmin

1,7

xi_repdataswcibrep

1

xi_reptexthead

1

xi_reptextshort

1

xi_reptextshort_tx

1

‘versionsetid’ is used in the following tables

xi_pchangelist

1

xi_pverrelation

2

xi_pversionset

1

xi_pvsetelement

1

xi_pvsintegration

2

xi_repchangelist

1

‘versionsetid_2_dev’ (and) ‘versionsetid_1_cons’ is used in the following tables

xi_pdevline

1

xi_pverrelation

3

xi_pversionset

1

xi_pvsetelement

1

xi_pvsetelemhist

1

xi_pvsintegration

1

xi_repswc_fixeddef

3 (versionsetid_2_dev), 4 (versionsetid_1_cons)

Screenshot

image

(Items rounded in red are input parameters for java API and items rounded in blue are generated internally in java API)

Adding a namespace in a SWC

Just add a record in the xi_repdataswc2ns table with the following field values.

  1. versionid (used in SWC creation)
  2. order (sequence number)
  3. namespace (text of namespace)

Hence the app-Implementation code looks like,


(Note: The sequence number starting from ‘0’ just increments for every object created in that SWC)

The API ‘addNamespace’ is provided with the source code in my previous blog

The next blog would be creating a Message Interface. So keep watching…

Disclaimer: This is just for an understanding of how XI objects creation works from Integration builder (to build an alternative for Integration Builder ;-)). Tested and works on XI 3.0 SR1 but using these Java classes will purely be at your own risk.

To report this post you need to login first.

2 Comments

You must be Logged on to comment or reply to a post.

  1. Former Member
    Hi Felix,

    in your first post you mentioned “a set of APIs in Java were formulated to directly interact with the XI server”. Is this API available somewhere?

    I need to read XI objects from the XI Server and transform the informations into Topic Maps for my thesis.

    Best regards,
    Manuel

    (0) 
    1. Former Member Post author
      Hi Manuel,

      The APIs are already given in the source codes. If you see there will not be any external references which you will be stuck in implementing this. Actually, the source codes are the source code of the APIs. By the way the reverse engineering technique used for this includes only “Analysis through observation of information exchange” through a custom built app and not through “Decompiler or Disassembler”.
      Best of luck for your thesis work.

      Best regards,
      Felix Jeyareuben

      (0) 

Leave a Reply