SAP NetWeaver identity Management: How to maintain XML-files.
The Extensible Markup Language (XML) is a general-purpose markup language. It is classified as an extensible language because it allows its users to define their own elements. Its primary purpose is to facilitate the sharing of structured data across different information systems, particularly via the Internet. It is used both to encode documents and serialize data. In the latter context, it is comparable with other text-based serialization languages such as JSON and YAML.
SAP NetWeaver Identity Management can use XML for data-transfer-operations. XML-files exported from various applications can be imported into SAP NetWeaver Identity Management. Data from these files can then be used for provisioning to target applications.
Data from SAP NetWeaver Identity Management can then be used as a source for XML-extracts. This blog describes how this can be configured in SAP NetWeaver Identity Management.
FromXML
The purpose of this pass is to read data from XML file(s), or a XML-structure from a database-field, into a database.
An external XML-parser has to be included in the environement. Download xerces.jar and indlude this in the class-path.
A fromXML-pass in IdentityCenter (Java-Version), is based around a fromCustomPass. A fromCustomPass is using java-classes included in the environment for the execution-procedure.
To configure a fromCustom-pass to read XML-Files, the following configuratin has to be done:
Create a new job inside identity Center. The job should be located under the following structure: <IDENTITY CENTER>\\JOB FOLDER\\<REPOSITORY_NAME> EX: “Identity Center\\Job folder\\Target Systems\\XML\\”
FromXML-connector used for syncronization
Configure the job to be a JAVA-based job. Then create a new pass inside the job. The passtype is FromCustom.
The following configuration on the pass has to be done:
Source-configuration:
Pass Type: FromXML
Input is selected using either:
PATH – XML file name (optionally containing wildcards in filename
or:
FROMDB – Database URL.
FROMSQL – Database select statement, selecting one field only. This field should be a string containing an XML-Structure.
XML processing:
XSL – XSL file used to transform XML file into the format the Identity Center understands.
NODENAME – Name of the node(s) that contains the data
The transformed XML should look like this:
<row>
<name1>value1</name1>
<name2>value3</name2>
<name3>value3</name3>
..
..
<nameN>valueN</nameN>
</row>
<row>
..
..
</row>
In the example above, the NODENAME is row. More than one instance of each name tag is not handled, so multivalues has to be handled by concatenating the values ex:
<name3>value3a;value3B;value3c</name3>
Destination-configuration:
Database: This will typically be the Identity Center database, but can also be any database supporting JDBC-connectivity
Table-Name: Can be anything, but recommended naming-convention is: <CUSTOMERNAME><REPOSITORYNAME><Type of entry>.
EX: where the entry is a user: maxware<REPOSITORYNAME>u
Click on ”Insert Template”, and the structure of the XML-file (The attribute-mapping) is read.
ToXML
The purpose of this pass is to write data from a database-table into a XML file.
An external XML-parser has to be included in the environement. Download xerces.jar and indlude this in the class-path.
A toXML-pass in IdentityCenter (Java-Version), is based around a toCustomPass. A toCustomPass is using java-classes included in the environemet for the execution-procedure.
To configure a toCustom-pass to write XML-Files the following configuratin has to be done:
Create a new job inside identity Center. The job should be located under the following structure: <IDENTITY CENTER>\\JOB FOLDER\\<REPOSITORY_NAME> EX: “Identity Center\\Job folder\\Target Systems\\XML\\”
ToXML-connector used for syncronization
It can also be integrated as part of the provisioning framework. Under the “Provisioning folder\\Custom Tasks\\ System Type Specific Tasks” Create a new folder for the XML Connector. Under that folder create a new, empty job. Configure the job to be a JAVA-based job. Then create a new pass inside the job. The passtype is toCustom.
ToXML-connector used for provisioning
The following configuration on the pass has to be done:
Source-configuration:
Database: This will typically be the Identity Center database, but can also be any database supporting JDBC-connectivity
SQL-Statement: Create a SQL-statement to fetch data from a spesified table containt data.
Destination-configuration:
Pass Type: ToXML
Input is selected using either:
MSROWSET If set to true (True/false is available options), will produce ms rowset output (Further info about MSROWSET is described later in this artichle
ROWNAME Name for the row element, default is “ROW”, ignored if MSROWSET is true
ROOTNAME- Name for the root element, default is “XML”, ignored if MSROWSET is true
XSL XSL file used to transform XML file after producing the document
XMLFILE Full path to the output file
Click on ”insert template\\Data Source Template”, to fetch the attribute-names from the database-table. Manual mapping can now be done.
The transformed XML will look like this unless additional XSL transformation is performed:
<row>
<name1>value1</name1>
<name2>value2</name2>
<name3>value3</name3>
..
..
<nameN>valueN</nameN>
</row>
<row>
..
..
</row>
If MSROWSET is set to True, the output will look like this:
<row>
name1=value1
name2=value2
name3=value3
nameN=valueN
</row>
<row>
..
..
</row>
In the example above, the NODENAME is row. More than one instance of each name tag is not handled, so multivalues have to be handled by concatenating the values ex:
<name3>value3a;value3B;value3c</name3>


thanks for this nice blog.
It again shows how extensible the IdM is.
Best regards, Jannis
Hi Kare,
After migrating your blog to new SCN, we can no longer see the images attached in this blog. Could you please add the missing information in this blog to make it complete.
Thanks,
Anuj