-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathSAPBuildMap.xml
122 lines (113 loc) · 4.35 KB
/
SAPBuildMap.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE sailpoint PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<sailpoint>
<Rule language="beanshell" name="SAP BuildMap Template" type="SAPBuildMap">
<Description>
This rule can be used to customize the SAP object that the connectors
build by default.
The rule gets a Map named 'object' that holds all of the attributes
built up using the default SAP implementation. The object can be
modified/added to here to help support customer customizations
and transformations that require the SAP system.
This rule is different from a Customization rule in that it deals with a
Map instead of a ResourceObject. The rule also receives a
'destination' object so it can make SAP calls to build up extra
data. It's very much like a BuildMap rule from the
DelimitedFileConnector, except that it receives a prebuilt Map
object.
</Description>
<Signature returnType="void">
<Inputs>
<Argument name="context">
<Description>
A sailpoint.api.SailPointContext object that can be used to query
the database if necessary.
</Description>
</Argument>
<Argument name="log">
<Description>
The log object associated with the SailPointContext.
</Description>
</Argument>
<Argument name="destination">
<Description>
A connected/ready to use com.sap.conn.jco.JCoDestination object
that can
be used to call bapi, function modules and call to SAP tables. This
is the main object used in making BAPI calls using the JCo
interface.
This destination object is shared with the connector implementation
and the
connector controls the destination's lifecycle.
</Description>
</Argument>
<Argument name="schema">
<Description>
The schema that represents the object we are building.
</Description>
</Argument>
<Argument name="connector">
<Description>
The SAP connector that is being used to communicate with SAP.
This class is here for convenience as there are many utility methods
that make calling Function Modules and doing table lookup
easier
</Description>
</Argument>
<Argument name="application">
<Description>
The SAP application object being used to connect to the SAP system.
</Description>
</Argument>
<Argument name="state">
<Description>
A map object that can be used to store data during the iteration
process.
</Description>
</Argument>
<Argument name="object">
<Description>
A map object that holds the attributes that have been built up by
the
default connector implementation. Any attributes built by this rule
should be added to this object. This object is handed by
reference,
so it can be used directly.
</Description>
</Argument>
</Inputs>
</Signature>
<ReferencedRules>
<Reference class="sailpoint.object.Rule" name="Global Rule Library"/>
</ReferencedRules>
<Source>
<![CDATA[
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import sailpoint.api.SailPointContext;
import org.apache.commons.logging.Log;
import sailpoint.object.TaskResult;
import com.sap.conn.jco.JCoDestination;
import sailpoint.object.Schema;
import sailpoint.connector.SAPInternalConnector;
import sailpoint.object.Application;
import java.util.Map;
import java.util.Map;
//Log mylogger = LogFactory.getLog("rule.SAPBuildMap");
//mylogger.debug("Start SAPBuildMap");
//add the following lines to IIQ Log4j properties file to use this logger
//logger.SAPBuildMap.name=rule.SAPBuildMap
//logger.SAPBuildMap.level=debug
//Available Input Variables
//destination;
//schema;
//connector;
//application;
//state;
//object;
//mylogger.debug("End SAPBuildMap");
//this rule does not return anything
]]>
</Source>
</Rule>
</sailpoint>