com.waveset.adapter
Class SAPHRActiveSyncAdapter
java.lang.Object
com.waveset.adapter.ResourceAdapterBase
com.waveset.adapter.SAPResourceAdapter
com.waveset.adapter.SAPHRActiveSyncAdapter
- All Implemented Interfaces:
- ActiveSync, ResourceAdapter
- public class SAPHRActiveSyncAdapter
- extends SAPResourceAdapter
- implements ActiveSync
Title: SAPHRActiveSyncAdapter
Description: ActiveSync adapter for SAP HR
Copyright: Copyright (c) 2004
Company: Sun Microsystems Inc.
- Version:
- $Revision: 1.24 $
Overview
This adapter fetches user attributes from SAP HR, and receives IDOCs sent
by a scheduled process on the SAP server. SAP HR stores attributes
in a series of infotypes and subtypes within those infotypes. Most of the
data is available through an API called BAPI that takes an employee id and
returns specific infotypes. Some data is only available via IDOC. IDOCs are
sent to our listener when the employee record changes.
Effective Dates
SAP HR also stores multiple records when there are effective dates
associated with the data. For example, email is stored as
infotype 0105, subtype MAIL, attribute COMMTYPE.
If the user changes his email, effective March 12, 2005, a second record is
created with an effective date of 12.03.2005. So the two records look like:
start_date end_date PERSID COMMTYPE ... (The rest of the record)
01.01.1800 11.03.2005 0000023 email_1
12.03.2005 31.12.9999 0000023 email_2
The incoming data (via IDOC or BAPI) is filtered. The current data is mapped
through the schema map, the future data is segregated in a special attribute
called futureData that can be used to trigger future user actions.
Functions
The BAPI functions to list the employee record data are listed in the
method callEmployeeBapis. It is table driven and new bapis can be added. The
attributes from the bapi calls are named from their infotype, subtype, and
attribute name, and idoc definition, separated by underscores - this makes
the right hand side of the schema map. If there is no subtype, there are
just two underscores.
BAPI calls are used to get the employee data in response to getUser calls,
the account iterator, and when an idoc is received.
IDOCs are sent from SAP to a Identity Manager listener asynchronously. The handling
is done by the AdapterIDocServer class which then calls the adapter
processIDOC method. The IDOC data is extracted into an IDOC_Segment which contain
segments for each infotype/subtype. Effective dates are examined to know whether
the segment contains future data or not.
Resource Attributes
RA_DATE_FORMAT - format to convert dates coming from SAP into Strings in
in the attributes, then back from Strings to SAP dates
RA_PROGID - The program ID that our IDOC server registers as with SAP.
Must match the programID used when setting up the SAP
server to generate IDOCs
RA_WSNAME - Naming attribute. When a user is gotten via the account
iterator, the name of the user object and ResourceInfo
display name is set to this attribute. This attribute
should be marked required in the schema.
RA_PROCESS_RULE -Process name to run. Instead of using IAPIUser, use
IAPIProcess and set the name to this.
RA_DISCOVER_PATTERNS
- Search patterns for discover. These are used to match
Employees by LASTNAME_M when calling the BAPI_EMPLOYEE_GETDATA
from the account iterator (only when discovering or
reconciling users).
* will get all at once but does not scale. A*, B*, C* .. Z*
will get them 1/26th at a time.
RA_IDOC_MESSAGE_TYPE
- Restrict processing to only IDOCs of this message type.
Defaults to "HRMD_A".
RA_INFOTYPE_FILTER
- Listed infotypes will be read from SAP HR, both through
IDOC and BAPI. Infotypes not listed will be filtered if
received in the IDOC. Infotypes must be four digit
strings (like 0000 or 0105). Some attributes can cause
security exceptions if read by our adapter, in particular
infotype 8 has an attribute that is annual salary which
can cause the adapter to stop with no exception. It is
bizarre - the thread just goes away like the API code
called exit() which it may do when it gets a security
exception.
Fields inherited from class com.waveset.adapter.SAPResourceAdapter |
_filteredAccounts, _poolKey, _serverConnection, _traceLevel, AA_ACTIVITY_GROUP_OBJECTS_MAPNAME, AA_ACTIVITY_GROUPS, AA_ACTIVITY_GROUPS_MAPNAME, AA_ACTIVITY_GROUPS_SHADOW, AA_BAPI_CUA_SYSTEMS, AA_BAPI_CUA_SYSTEMS_MAPNAME, AA_BAPI_CUA_SYSTEMS_SHADOW, AA_DIRECT_ACTIVITY_GROUPS_SHADOW, AA_DIRECT_LOCAL_ACTIVITYGROUPS, AA_DIRECT_LOCAL_PROFILES, AA_DIRECT_PROFILES_SHADOW, AA_LOCAL_ACTIVITYGROUPS, AA_LOCAL_PROFILES, AA_LOGONDATA_LTIME, AA_PROFILES, AA_PROFILES_MAPNAME, AA_PROFILES_SHADOW, ACTIVITY_GROUP_FROM_DATE, ACTIVITY_GROUP_NAME, ACTIVITY_GROUP_TO_DATE, DISPLAY_PASSWORD, DISPLAY_USER, jcoTrace, LOGIN_PASSWORD, LOGIN_USER, RA_BAPI_RETRY_COUNT, RA_CONNECT_RETRY_COUNT, RA_CONNECT_RETRY_WAIT_TIME, RA_FILTERED_ACCOUNTS, RA_GATEWAY, RA_GATEWAY_SERVICE, RA_HOST, RA_JCO_TRACE_LEVEL, RA_JCO_TRACE_PATH, RA_LANGUAGE, RA_NUMBER_OF_CONNECTIONS, RA_PASSWORD, RA_RETURN_SAP_TEMP_PWD, RA_SAP_CLIENT, RA_SYSTEM_NUMBER, RA_UPPER_CASE_PASSWORDS, RA_USE_CUA, RA_USE_SAP_TEMP_PWD, RA_USER, RA_USER_PWD_ON_CHG, RESOURCE_LOGIN_MODULE, RESOURCE_NAME, RESOURCE_USER_FORM, SAP_TIMEZONES, sapRepository, TEMP_PASSWORD_RESULT, WS_PASSWORD_EXPIRED, WS_RESET_FAILED_LOGIN_COUNT |
Fields inherited from class com.waveset.adapter.ResourceAdapterBase |
_cache, _context, _excludedAccountsRule, _excludedAccountsRuleInited, _listAllObjectsAttrParse, _listAllObjectsAttrParseName, _listUserAttrParse, _listUserAttrParseName, _listUserGroupsAttrParse, _listUserGroupsAttrParseName, _resource, _thread, _trace, displayInfoCode, RA_BLOCKCOUNT, RA_LOGIN_ACTION, RA_LOGOFF_ACTION, RA_MULTI_VALUED_ATTRS, RA_TEST_MODE |
Fields inherited from interface com.waveset.adapter.ActiveSync |
ACTIVE_SYNC_EVENT_RES_ATTRS_XML, ACTIVE_SYNC_STD_RES_ATTRS_XML, ATTR_IS_DELETED, DATE_FORMAT, DATE_TIME_FORMAT, RA_APPLY_META_VIEW, RA_ASSIGN_SOURCE_ON_CREATE, RA_CONFIRMATION_RULE, RA_CORRELATION_RULE, RA_CREATE_UNMATCHED, RA_DELETE_RULE, RA_FORM, RA_ID, RA_IDM_NAME_RULE, RA_LEGACY_EVENT_GEN, RA_LOG_LEVEL, RA_LOG_PATH, RA_LOG_SIZE, RA_MAX_AGE_LENGTH, RA_MAX_AGE_UNIT, RA_MAX_ARCHIVES, RA_NAME, RA_PARAMETERIZED_INPUT_FORM, RA_POPULATE_GLOBAL, RA_POSTPOLL_WORKFLOW, RA_PREPOLL_WORKFLOW, RA_PROCESS_RULE, RA_PROXY_ADMINISTRATOR, RA_RESET_TO_TODAY, RA_RESOLVE_PROCESS_RULE, RA_SCHEDULE_INTERVAL, RA_SCHEDULE_INTERVAL_COUNT, RA_SCHEDULE_START_DATE, RA_SCHEDULE_START_TIME, RA_SYNC_CONFIG_MODE, RA_SYNC_POST_PROCESS_FORM, RA_UPDATE_IF_DELETE, RA_USE_INPUT_FORM, TIME_FORMAT, TRACE_LEVEL_DEBUG, TRACE_LEVEL_ERROR, TRACE_LEVEL_INFO, TRACE_LEVEL_NONE, TRACE_LEVEL_WARNING |
Fields inherited from interface com.waveset.adapter.ResourceAdapter |
CHANGE_PASSWORD_LOCATION, DISABLE, ENABLE, EXPIRE_PASSWORD, GUID, IGNORE_ATTR, NEW_ACCOUNT_ID, OP_DAYS_INACTIVE, OP_DISABLED, OP_DORMANT, OP_EXPIRED, OP_EXPIREDPWD, OP_INACTIVE, OP_LOCKED, OP_NO_PASSWORD_SET, OP_NOOWNERSHIP, OP_NOPASSWORDREQ, OP_NUMINACTIVEDAYS, OP_NUMPWDAYS, OP_PWNUMDAYS, RA_BASE_CTX, RA_DISPLAY_NAME_ATTR, RA_NEW_OBJECT_ID, RA_NEW_OBJECT_NAME, RA_OBJECT_ATTRIBUTES, RA_OBJECT_CLASS, RA_OBJECT_ID, RA_OBJECT_TYPE, RA_OP_TYPE, RA_RENAME_OP, RA_REQUESTOR, RA_SAVEAS_OP, RA_SEARCH_ATTRIBUTE_NAMES, RA_SEARCH_ATTRS_TO_GET, RA_SEARCH_CONTEXT, RA_SEARCH_FILTER, RA_SEARCH_RUN_AS_PASSWORD, RA_SEARCH_RUN_AS_USER, RA_SEARCH_SCOPE, RA_SEARCH_SCOPE_OBJECT, RA_SEARCH_SCOPE_ONE_LEVEL, RA_SEARCH_SCOPE_SUBTREE, RA_SEARCH_TIME_LIMIT, RESET_PASSWORD, SYSTEM_ATTRIBUTES, UNLOCK, WS_USER_PASSWORD |
Method Summary |
protected java.util.List |
bapiListUsers(java.lang.String matchString,
boolean returnUsers)
Return a List of WSUser via BAPI. |
void |
callCompleted(com.waveset.adapter.iapi.IAPI call)
OBSOLETE
An call generated by this resource adapter has completed. |
protected java.util.Map |
callEmployeeBapis(java.lang.String EmployeeId)
Call the needed bapis to retrieve the Employee data. |
Resource |
createPrototypeResource()
|
protected java.lang.String |
dateToString(java.util.Date in)
|
AccountIterator |
getAccountIterator()
|
java.lang.Object |
getAttributeValue(java.lang.String name)
Get or set an attribute value for the ActiveSync. |
GenericObject |
getFeatures()
Expose features supported by the Resource Adapter. |
protected java.util.List |
getSearchPatterns()
|
WSUser |
getUser(WSUser inUser)
Get attributes for the named user from SAP HR, build a WSUser object
with the name = the naming attribute |
protected void |
idocsDone()
Called when idoc processing is done (if processing is deferred, run now) |
protected void |
idocsStart()
Called when IDOC processing starts |
void |
init()
initialize yourself. |
java.util.ArrayList |
listAllObjects(java.lang.String resourceObjectType,
java.util.Map options,
java.lang.String runAsUser,
EncryptedData runAsPassword)
This method will return a list of object names of the specified
object type. |
protected void |
logUpdate(int level,
WavesetResult result)
Log whatever we want to from an update. |
protected java.util.Map |
mapToSchema(java.util.Map in)
|
int |
poll()
The poll method. |
protected void |
processIDOC(SAPHRActiveSyncAdapter.IDOC_Segment seg,
java.util.Map schemaMap)
Called for each IDOC. |
protected void |
realCreate(WSUser user,
WavesetResult result)
Create a new user account on the resource
This method is called by createAccounts (the multiuser create method). |
protected void |
realDelete(WSUser user,
WavesetResult result)
Needs to be overridden by subclass if default deleteAccounts()
implementation is used. |
void |
realDisable(WSUser user,
WavesetResult result)
Disables a user, called within a connected context. |
void |
realEnable(WSUser user,
WavesetResult result)
Enables a user by setting adminLockout to false |
protected void |
realUpdate(WSUser user,
WavesetResult result)
Needs to be overridden by subclass if default updateAccounts()
implementation is used. |
void |
setAttributeValue(java.lang.String name,
java.lang.Object value)
|
void |
shutdown()
shutdown |
void |
startHRProcess()
Starts the SAP HR report RHALEINI which will send the Person objects
to the JCO.Server that is listening. |
static Resource |
staticCreatePrototypeResource()
|
protected java.util.Date |
stringToDate(java.lang.String in)
|
boolean |
supportsAccountDisable()
Indicates whether or not this resource supports account disable. |
WavesetResult |
testConfiguration()
Default implementation of test method, calls check create. |
Methods inherited from class com.waveset.adapter.SAPResourceAdapter |
addAttrIfMapped, addAttrIfMapped, authenticate, booleanToString, callBAPIFunction, callBAPIFunction, changeUserPassword, checkCreateAccount, checkDeleteAccount, checkIfUserExists, checkUpdateAccount, connect, connect, convertAttrToList, createFunction, createFunction, disconnect, errorCheck, extractData, extractData, getActivityGroups, getActivityGroups, getHelpValues, getIdentity, getIntRequiredResAttrVal, getLocalActivityGroupsAndCUASystems, getLocalProfiles, getUserPassword, getWsAttrsString, init_internal, jcoErrorStructureCheck, jcoErrorStructureCheck, jcoErrorTableCheck, jcoErrorTableCheck, maintainLocalActivityGroups, maintainLocalProfiles, maintainSapActivityGroups, maintainSapProfiles, realGetUser, resetFailedLoginCount, reverseMapAttr, reverseMapAttr, reverseMapMultiAttr, sapSetValues, setResource, setupJCOTrace, setUserField, startConnection, startConnectionWrapper, stopConnection, stringToBoolean, unexpirePassword, unexpirePassword, unexpirePassword |
Methods inherited from class com.waveset.adapter.ResourceAdapterBase |
checkForNoPasswordInSchema, checkSyntax, createAccount, createAccounts, createIdentity, createObject, deleteAccount, deleteAccount, deleteAccounts, deleteObject, disableAccount, disableAccounts, dnsEqual, dnsEqual, enableAccount, enableAccounts, executeResourceAttributeJavascriptAction, fillInResourceInfo, fillInResourceInfo, getAccountAttributes, getAccountIterator, getAccountIterator, getAction, getActionNotFoundErrorMessage, getActionNotFoundMessage, getActionRunAsPassword, getActionRunAsUser, getActionTimeout, getActionType, getAdapter, getAdapter, getAdapter, getAdapterProxy, getAdapterProxy, getAllAccounts, getAttrNameFromMapName, getAttrNameFromMapName, getAttrParse, getAttrTypeFromMapName, getAttrTypeFromMapName, getAUserName, getBaseContextAttrName, getBaseContextObject, getBaseContexts, getBlockSize, getContext, getExcludedAccountsRule, getListAllObjectsAttrParse, getListUserAttrParse, getListUserGroupsAttrParse, getObject, getOptionalBooleanResAttrVal, getOptionalBooleanResAttrVal, getOptionalEncryptedResAttrVal, getOptionalResAttrVal, getOptionalStringResAttrVal, getRequiredResAttr, getRequiredResAttr, getRequiredResAttrVal, getRequiredResAttrVal, getRequiredResAttrVals, getRequiredUserAttributeNames, getResAttrValActionOnUser, getResAttrVals, getResource, getResourceAccounts, getResourceInfo, getResourceObjectAttrValNameAttr, getResourceObjectClassAttr, getResourceObjectTypePrefix, getSchemaMap, getUser, getWSAttrByMapName, getWSAttrByMapName, getWSAttrFromMap, handleActionResult, handleJavascriptActionResult, isAccountAttributeSecret, isExcludedAccount, isExcludedAccount, isFeatureEnabled, isSupported, isTestMode, listAllObjects, listObjects, listObjects, listObjectsOfType, lookupAction, lookupAction, lookupActions, namesEqual, objectClassesMatchType, println, restoreResourceObjectClassAttr, run, run, runResourceAttributeJavascriptAction, scan, setCache, setContext, setDisabled, setFromResource, setResourceObjectClassAttr, setResourceOptionAttrs, supportsAccountActions, supportsActions, supportsCaseInsensitiveAccountIds, supportsContainerObjectTypes, supportsExcludedAccounts, supportsResourceAccount, supportsScanning, updateAccount, updateAccounts, updateObject, updateResourceAccount, updateResourceIdentity, vmStoreBoot, vmStoreGet, vmStoreInit, vmStoreLatch, vmStorePut |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
code_id
public static final java.lang.String code_id
- See Also:
- Constant Field Values
IDOC_DATE_FORMAT
public static final java.lang.String IDOC_DATE_FORMAT
- See Also:
- Constant Field Values
RA_DATE_FORMAT
protected static final java.lang.String RA_DATE_FORMAT
- Add the ActiveSync-specific attributes.
- See Also:
- Constant Field Values
RA_PROGID
public static final java.lang.String RA_PROGID
- See Also:
- Constant Field Values
RA_WSNAME
protected static final java.lang.String RA_WSNAME
- See Also:
- Constant Field Values
RA_PROCESS_NAME
protected static final java.lang.String RA_PROCESS_NAME
- Deprecated. As of IdM 5.5. Use RA_PROCESS_RULE instead.
- See Also:
- Constant Field Values
RA_DISCOVER_PATTERNS
protected static final java.lang.String RA_DISCOVER_PATTERNS
- See Also:
- Constant Field Values
RA_IDOC_MESSAGE_TYPE
public static final java.lang.String RA_IDOC_MESSAGE_TYPE
- See Also:
- Constant Field Values
RA_INFOTYPE_FILTER
public static final java.lang.String RA_INFOTYPE_FILTER
- See Also:
- Constant Field Values
RA_UNICODE
public static final java.lang.String RA_UNICODE
- See Also:
- Constant Field Values
prototypeXmlAdditions
protected static final java.lang.String[] prototypeXmlAdditions
resAttrAdditions
protected static final java.lang.String[] resAttrAdditions
- Default schema for the adapter. The left hand side is a name that is
designed to be readable. the right hand side is the infotype:subtype:[idoc-def[:attrName]]
This is a huge but only partial list. There are many more attributes
but these seem like the more common ones.
_jcoRepository
protected com.sap.mw.jco.IRepository _jcoRepository
- Initialize the adapter, registering as an IDOC server.
Throw exception if initialization failed
_idocRepository
protected com.sap.mw.idoc.IDoc.Repository _idocRepository
_server
protected SAPHRActiveSyncAdapter.AdapterIDocServer _server
SAPHRActiveSyncAdapter
public SAPHRActiveSyncAdapter()
getFeatures
public GenericObject getFeatures()
- Expose features supported by the Resource Adapter.
Note: ActiveSync is considered a facet, not a feature.
- Specified by:
getFeatures
in interface ResourceAdapter
- Overrides:
getFeatures
in class SAPResourceAdapter
- Returns:
- GenericObject containing Features, as both key and value, which
are supported by this resource adapter.
- See Also:
ResourceAdapter.Features
supportsAccountDisable
public boolean supportsAccountDisable()
- Description copied from interface:
ResourceAdapter
- Indicates whether or not this resource supports account disable.
If it does not, the provisioning engine will attempt to simulate
disable by generating random passwords.
If we end up with more of these "can you do this" methods,
we might want to generalize it into a more extensible
way to describe features and levels of support.
- Specified by:
supportsAccountDisable
in interface ResourceAdapter
- Overrides:
supportsAccountDisable
in class SAPResourceAdapter
staticCreatePrototypeResource
public static Resource staticCreatePrototypeResource()
throws WavesetException
- Throws:
WavesetException
createPrototypeResource
public Resource createPrototypeResource()
throws WavesetException
- Specified by:
createPrototypeResource
in interface ResourceAdapter
- Overrides:
createPrototypeResource
in class SAPResourceAdapter
- Throws:
WavesetException
getAccountIterator
public AccountIterator getAccountIterator()
throws WavesetException
- Specified by:
getAccountIterator
in interface ResourceAdapter
- Overrides:
getAccountIterator
in class SAPResourceAdapter
- Throws:
WavesetException
getUser
public WSUser getUser(WSUser inUser)
throws WavesetException
- Get attributes for the named user from SAP HR, build a WSUser object
with the name = the naming attribute
- Specified by:
getUser
in interface ResourceAdapter
- Overrides:
getUser
in class SAPResourceAdapter
- Throws:
WavesetException
bapiListUsers
protected java.util.List bapiListUsers(java.lang.String matchString,
boolean returnUsers)
throws WavesetException
- Return a List of WSUser via BAPI. Called repeatedly with A*, B*, this
will return all of the users in SAP. If called with * it will return them
all at once which does not scale.
I am not 100% sure that this will match all names in a Unicode environment
but I think that there is an ascii representation of the names that is
used for searching.
- Parameters:
matchString
- match names with this string (e.g. Smi*)returnUsers
- return WSUsers if true, String (name) if false
- Throws:
WavesetException
getSearchPatterns
protected java.util.List getSearchPatterns()
throws WavesetException
- Throws:
WavesetException
listAllObjects
public java.util.ArrayList listAllObjects(java.lang.String resourceObjectType,
java.util.Map options,
java.lang.String runAsUser,
EncryptedData runAsPassword)
throws WavesetException
- Description copied from interface:
ResourceAdapter
- This method will return a list of object names of the specified
object type. If you need to be able to specify which attrs to
return, use listObjects instead
- Specified by:
listAllObjects
in interface ResourceAdapter
- Overrides:
listAllObjects
in class SAPResourceAdapter
- Throws:
WavesetException
testConfiguration
public WavesetResult testConfiguration()
throws WavesetException
- Description copied from class:
ResourceAdapterBase
- Default implementation of test method, calls check create.
It is strongly preferred that this is overrided by derived classes so
that a real test can be done without burdening the checkCreate method
with a large overhead.
On errors, an exception can be thrown or the error can be returned in the
WavesetResult. Errors in the result will generate a test failure message,
messages will appear for success or failure.
- Specified by:
testConfiguration
in interface ResourceAdapter
- Overrides:
testConfiguration
in class ResourceAdapterBase
- Throws:
WavesetException
startHRProcess
public void startHRProcess()
throws WavesetException
- Starts the SAP HR report RHALEINI which will send the Person objects
to the JCO.Server that is listening.
- Throws:
WavesetException
getAttributeValue
public java.lang.Object getAttributeValue(java.lang.String name)
throws WavesetException
- Description copied from interface:
ActiveSync
- Get or set an attribute value for the ActiveSync. Setting an attribute
value only changes the in-memory copy of the attribute, not the
persistent value. Set is typically only used for status or scheduling
updates.
- Specified by:
getAttributeValue
in interface ActiveSync
- Throws:
WavesetException
setAttributeValue
public void setAttributeValue(java.lang.String name,
java.lang.Object value)
throws WavesetException
- Specified by:
setAttributeValue
in interface ActiveSync
- Throws:
WavesetException
init
public void init()
throws java.lang.Exception
- Description copied from interface:
ActiveSync
- initialize yourself. throw exception if initialization failed
- Specified by:
init
in interface ActiveSync
- Throws:
java.lang.Exception
shutdown
public void shutdown()
- Description copied from interface:
ActiveSync
- shutdown
- Specified by:
shutdown
in interface ActiveSync
poll
public int poll()
- Description copied from interface:
ActiveSync
- The poll method. Called at a configurable interval, this
- polls the remote resource for changes,
- converts them to IAPI calls, and
- posts them back to the server.
- Specified by:
poll
in interface ActiveSync
- Returns:
- 0 if no work done, n if n calls processed.
idocsStart
protected void idocsStart()
- Called when IDOC processing starts
mapToSchema
protected java.util.Map mapToSchema(java.util.Map in)
- Parameters:
in
- Map of attributes, named by "right hand side of the schema"
- Returns:
- Map of attributes named by left hand side. null if empty.
processIDOC
protected void processIDOC(SAPHRActiveSyncAdapter.IDOC_Segment seg,
java.util.Map schemaMap)
throws WavesetException,
com.waveset.adapter.iapi.IAPIException
- Called for each IDOC.
Fetch the user map from SAP HR, merge in the data received from IDOC,
create an IAPIUser, submit it.
- Parameters:
seg
- the generic object that represents the IDoc.SegmentschemaMap
- schema map from this resource
- Throws:
WavesetException
com.waveset.adapter.iapi.IAPIException
idocsDone
protected void idocsDone()
- Called when idoc processing is done (if processing is deferred, run now)
callCompleted
public void callCompleted(com.waveset.adapter.iapi.IAPI call)
- OBSOLETE
An call generated by this resource adapter has completed. Check the
result of the call, propogate the result back to the source (like
updating a column in a database), and delete it if we are done.
If this does not delete the call, there must be something else that
deletes it - or it will just go away when it expires.
- Parameters:
call
- -
the event that has changed.- See Also:
callEmployeeBapis
protected java.util.Map callEmployeeBapis(java.lang.String EmployeeId)
throws WavesetException
- Call the needed bapis to retrieve the Employee data. Table driven, takes
the return data from each call and merges them into a Map.
Naming in the map is infotype:subtype:attributeName. So for email, this
is 0105:MAIL:E2P0105001:ID. Personal data does not have a subtype so it is
0002::E2P0002001:MIDDLENAME (note the double colon).
- Throws:
WavesetException
stringToDate
protected java.util.Date stringToDate(java.lang.String in)
throws WavesetException
- Overrides:
stringToDate
in class SAPResourceAdapter
- Throws:
WavesetException
dateToString
protected java.lang.String dateToString(java.util.Date in)
throws WavesetException
- Overrides:
dateToString
in class SAPResourceAdapter
- Throws:
WavesetException
realDisable
public void realDisable(WSUser user,
WavesetResult result)
throws WavesetException
- Disables a user, called within a connected context.
- Overrides:
realDisable
in class SAPResourceAdapter
- Throws:
WavesetException
realEnable
public void realEnable(WSUser user,
WavesetResult result)
throws WavesetException
- Enables a user by setting adminLockout to false
- Overrides:
realEnable
in class SAPResourceAdapter
- Throws:
WavesetException
realCreate
protected void realCreate(WSUser user,
WavesetResult result)
throws WavesetException
- Create a new user account on the resource
This method is called by createAccounts (the multiuser create method).
CreateAccounts will open a connection, call realCreate for each user
being created, then close the connection.
- Overrides:
realCreate
in class SAPResourceAdapter
- Throws:
WavesetException
realUpdate
protected void realUpdate(WSUser user,
WavesetResult result)
throws WavesetException
- Description copied from class:
ResourceAdapterBase
- Needs to be overridden by subclass if default updateAccounts()
implementation is used.
- Overrides:
realUpdate
in class SAPResourceAdapter
- Throws:
WavesetException
realDelete
protected void realDelete(WSUser user,
WavesetResult result)
throws WavesetException
- Description copied from class:
ResourceAdapterBase
- Needs to be overridden by subclass if default deleteAccounts()
implementation is used.
- Overrides:
realDelete
in class SAPResourceAdapter
- Throws:
WavesetException
logUpdate
protected void logUpdate(int level,
WavesetResult result)
- Log whatever we want to from an update.