Oracle Fusion Middleware extensions for Applications Core API Reference
11g Release 1 (11.1.1.5)

E22562-01

oracle.apps.fnd.applcore.flex.dff.uiModel.applicationModule
Class DFFAdfdiUIAMImpl

java.lang.Object
  extended by oracle.jbo.common.NamedObjectImpl
      extended by oracle.jbo.server.NamedObjectImpl
          extended by oracle.jbo.server.ComponentObjectImpl
              extended by oracle.jbo.server.ContainerObjectImpl
                  extended by oracle.jbo.server.ApplicationModuleImpl
                      extended by oracle.apps.fnd.applcore.oaext.model.OAApplicationModuleImpl
                          extended by oracle.apps.fnd.applcore.flex.dff.uiModel.applicationModule.DFFAdfdiUIAMImpl
All Implemented Interfaces:
java.util.EventListener, DFFAdfdiUIAM, OAApplicationModule, OASeedDataService, oracle.jbo.ApplicationModule, oracle.jbo.common.TransPostControl, oracle.jbo.common.ws.WSApplicationModuleMarshaller, oracle.jbo.ComponentObject, oracle.jbo.ExprWrappable, oracle.jbo.GenericHints, oracle.jbo.OperationContainer, oracle.jbo.Properties, oracle.jbo.server.ContainerObject, oracle.jbo.server.TransactionListener, oracle.jbo.VariableManagerOwner, oracle.jbo.VariableManagerOwnerBase, oracle.jbo.WarningContainer, oracle.svcmsg.SvcMsgReceiver, oracle.svcmsg.SvcMsgSender

public class DFFAdfdiUIAMImpl
extends OAApplicationModuleImpl
implements DFFAdfdiUIAM

Provides a series of custom methods to support our descriptive flexfield Excel spreadsheet loader. The spreadsheet loader uses ADFDI infrastructure on the client and server to download, create, modify and upload descriptive flexfield metadata including global segments, new contexts, and context based segments. This API also supports table validated value sets. The fundamental approach is to use transient VO's to upload the data and have these API's move the data from the transient VO into the actual service VO's. The reason this is required is deal with the complexity in the entity hierarchy in DFF. ADFDI is not great for dealing with highly structed and deep relational trees. The methods defined here only supports inserts and updates. I have not enabled delete capabilities in the spreadsheet yet. ADFDI does support the ability to delete rows but I have not included any UI buttons for this action. There is a pageDef wired to the transient VO's that we generate - DescriptiveFlexfieldADFDIPageDef.xml The attributes in the transient VO we populate here and client methods exposed through this AM are referenced in this pagedef. The ADFDI spreadsheet references these binding to download and upload the data that is managed in this class. KEY NOTE : I've simplified the overall descriptive flexfield metadata tree for the 80% use case. For example I only support one usage, one table usage, and one entity usage per descriptive flexfield definition. We could not create a worksheet / ADFDI Table component per layer of the hierarchy. There is no notion of synchronized master / detail tables in ADFDI. Exposing all these layers as separate worksheets would be incredibly difficult to use.


Field Summary
 
Fields inherited from class oracle.apps.fnd.applcore.oaext.model.OAApplicationModuleImpl
RCS_ID
 
Fields inherited from class oracle.jbo.server.ApplicationModuleImpl
DEFAULT_DEF_NAME, SHARED_SCOPE_APPLICATION, SHARED_SCOPE_SESSION
 
Fields inherited from class oracle.jbo.server.ContainerObjectImpl
mComponentList, mComponents
 
Fields inherited from class oracle.jbo.common.NamedObjectImpl
mFullName, mObjName, mParent, mProperties, RES_ID_SUFFIX
 
Fields inherited from interface oracle.jbo.ApplicationModule
ACTIVATE_CLIENT_FLAG, ACTIVATE_REMOVE_FLAG, ACTIVATE_SKIP_RESTORE_VO_FROM_DEF, ACTIVATE_TRANSIENT_FLAG, ACTIVATE_UNDO_FLAG, DEFAULT_DEF_FULL_NAME, DEFAULT_ROOT_APP_MOD_NAME, EFF_DT_PROPERTY_STR, IMAGE_LOC, PASSIVATE_DEFER_FLAG, PASSIVATE_HINT_FLAG, PASSIVATE_TO_DATABASE, PASSIVATE_TO_FILE, PASSIVATE_TO_MEMORY, PASSIVATE_TO_STACK_FLAG, PASSIVATE_TRANSIENT_FLAG, PASSIVATE_UNDO_FLAG, RELEASE_LEVEL_MANAGED, RELEASE_LEVEL_RESERVED, RELEASE_LEVEL_UNMANAGED, REMOVE_SNAPSHOT, RESET_CLIENT_ONLY_FLAG, RESET_INTERNAL_FLAG, RESET_KEEP_ALL_SNAPSHOTS_FLAG, RESET_MANAGE_SNAPSHOTS, RESET_RELOAD_FLAG, RESET_ROLLBACK_FLAG, SYNC_BATCH, SYNC_IMMEDIATE, SYNC_LAZY
 
Fields inherited from interface oracle.jbo.GenericHints
PROPERTY_LABEL, PROPERTY_LABEL_PLURAL, PROPERTY_TOOLTIP
 
Fields inherited from interface oracle.apps.fnd.applcore.oaext.model.OASeedDataService
RCS_ID_RECORDED
 
Fields inherited from interface oracle.jbo.common.TransPostControl
TRANS_POST_GET_ATTR_BY_INDEX, TRANS_POST_GET_ATTR_BY_NAME, TRANS_POST_GET_ATTR_COUNT, TRANS_POST_GET_ATTR_INDEX_OF, TRANS_POST_GET_STRUCTURE_DEF, TRANS_POST_PUSHBACK, TRANS_POST_REFRESH_UNDO_CHANGES, TRANS_POST_REFRESH_WITH_DB_FORGET_CHANGES, TRANS_POST_REFRESH_WITH_DB_ONLY_IF_UNCHANGED, TRANS_POST_REMOVE, TRANS_POST_SET_ATTR_BY_INDEX, TRANS_POST_SET_ATTR_BY_NAME
 
Fields inherited from interface oracle.jbo.common.ws.WSApplicationModuleMarshaller
ACTIVATION_AFTER_LOSS_OF_AFFINITY, ACTIVATION_AFTER_RESTART, ACTIVATION_NONE, SYNC_INT_BATCH, SYNC_INT_BATCH_DO_WORK
 
Constructor Summary
DFFAdfdiUIAMImpl()
          This is the default constructor (do not remove).
 
Method Summary
 void downloadDFF()
          Called from the Download button on the DFF TablesColumns worksheet.
 void downloadSegmentRows()
          Called from the Download button in the Contexts/Segments Worksheet of the Descriptive Flexfield ADFDI UI.
 void downloadTableValidatedValueSet()
          Called from the Download button in the Table Validated Value Set Worksheet of the Descriptive Flexfield ADFDI UI.
 OAViewObjectImpl getDescriptiveFlexfieldADFDI()
          Container's getter for DescriptiveFlexfieldADFDI.
 OAViewObjectImpl getDescriptiveFlexfieldADFDIColumnUsageType()
          Container's getter for DescriptiveFlexfieldADFDIColumnUsageType.
 OAViewObjectImpl getDescriptiveFlexfieldADFDIContextSegment()
          Container's getter for DescriptiveFlexfieldADFDIContextSegment.
 OAViewObjectImpl getDescriptiveFlexfieldADFDITableValidatedValueSet()
          Container's getter for DescriptiveFlexfieldADFDITableValidatedValueSet.
 OAViewObjectImpl getDescriptiveFlexfieldSearchCriteria()
          Container's getter for DescriptiveFlexfieldSearchCriteria.
 OAViewObjectImpl getDescriptiveFlexfieldTableValidatedSearchCriteria()
          Container's getter for DescriptiveFlexfieldTableValidatedSearchCriteria.
 oracle.jbo.server.ApplicationModuleImpl getValueSetServiceAM()
          Container's getter for ValueSetServiceAM.
 void newFlex()
          newFlex is called whenever you open the ADFDI spreadsheet.
 void setInsertFlag()
          Utility API to set the change flag attribute on the flattened DescriptiveFlexfieldADFDIContextSegmentVO.
 void setUpdateFlag()
          Utility API to set the change flag attribute on the flattened DescriptiveFlexfieldADFDIContextSegmentVO.
 void uploadDFF()
          Called from the Upload button on the DFF TablesColumns worksheet Uploads new and modified Descriptive Flexfield information from the transient VO's updated through the data controls associated with the DescriptiveFlexfieldADFDIPageDef.xml pagedef bound to the ADFDI spreadsheet.
 void uploadSegmentRows()
          Called from the Upload button in the Contexts/Segments Worksheet of the Descriptive Flexfield ADFDI UI.
 void uploadTableValidatedValueSet()
          Called from the Upload button in the Table Validated Value Set Worksheet of the Descriptive Flexfield ADFDI UI.
 
Methods inherited from class oracle.apps.fnd.applcore.oaext.model.OAApplicationModuleImpl
getFNDNestedService, getFNDNestedService, getNLSLanguageForSeedData, getSeedContext, getSequenceValue, getSetId, invalidateSetIdCache, invalidateSetIdCache, isResetting, isSeedDataExtractMode, isSeedDataMode, isSeedDataUploadMode, isT2PMode, prepareSession, prepareSession, resetState, resetState, seedExtract, seedUpload, seedUpload, seedUpload, setNLSLanguageForSeedData, setSeedContext, setT2PMode, synchronizeApplSessionWithDB, unSetT2PMode
 
Methods inherited from class oracle.jbo.server.ApplicationModuleImpl
activate, activateConnectionState, activateOpenVOs, activateState, activateState, activateState, activateState, activateStateForUndo, addChild, addResponse, addWarning, afterActivation, afterCommit, afterConnect, afterRemove, afterRollback, afterValidate, beforeCommit, beforeDisconnect, beforeRollback, beforeValidate, bindToWorkingSet, clearVOCaches, createApplicationModule, createComponentObject, createCompositeViewDef, createRootApplicationModule, createSharedDataHandle, createViewLink, createViewLink, createViewLinkBetweenViewObjects, createViewLinkFromEntityAssocName, createViewObject, createViewObject, createViewObjectForDef, createViewObjectFromQueryClauses, createViewObjectFromQueryStmt, createViewObjectFromQueryStmt, createViewObjectOnEntity, createViewObjectOnRowSet, createWorkerApplicationModule, createXMLSharedDataHandle, detach, doMessage, doPoolMessage, dumpQueryResult, executeCommand, executeQueryOnViewObjects, fetchAttributeProperties, findApplicationModule, findComponentObject, findObject, findObject, findOrCreateSharedApplicationModule, findRSIForEntity, findViewLink, findViewObject, findViewObjectUsingEntity, findViewObjectWithParameters, findVOsWithEntityUsage, findVOsWithEntityUsage, finishLoadingComponents, finishSyncWorkingSet, getAMStatistics, getApplicationModuleDef, getApplicationModuleImpls, getApplicationModuleNames, getApplicationModuleNames, getAppModuleRequestHandler, getAttributeDefs, getAttributeDefs, getAttributeDefsForVO, getClientProxyClassName, getClientProxyClassName, getClientProxyInterfaceName, getComponentObjectNames, getComponentObjectNames, getCurrentWorkingSet, getDBTransaction, getDefFullName, getDefName, getEntityAttributesPermission, getEntityRowFromHandle, getExceptionHandler, getImageLoc, getListBindingName, getListBindingRSI, getMostRecentStackId, getObjectMarshaller, getPreferredListRSI, getReleaseLevel, getRemoteObjectId, getResponseName, getSession, getStyles, getSyncLock, getSyncMode, getTransaction, getTransactionInternal, getUserPrincipalName, getViewAttributesPermission, getViewLinkNames, getViewLinkNames, getViewLinks, getViewObjectNames, getViewObjectNames, getViewObjects, getWorkingSetMarshaller, handleDefinitionChangedOnActivate, hasPendingDataPosts, internalGetListBindingRSI, invokeMethod, isForRemote, isLoadComponentsLazily, isNameGenerated, isRoot, isTransientTransactionListener, isValidIdForUndo, launchTester, marshal, marshalForActivate, passivateConnectionState, passivateOpenVOs, passivateState, passivateState, passivateState, passivateState, passivateState, passivateStateForUndo, prepareApplicationModuleSession, prepareForActivation, prepareForPassivation, prepareSession, prepareViewObjects, processChangeNotifications, remove, removeChild, removeState, reservePassivationId, reserveSnapshotId, reset, resetState, selectAttributesForViewObjects, sendServiceMessage, sendWorkingSetRequests, setBoundToWorkingSet, setDataModelRefresh, setDBConnectionRequired, setExceptionHandler, setLoadComponentsLazily, setReleaseLevel, setRemoteAdapter, setSessionUserData, setStoreForPassiveState, setStyles, setSyncMode, setWorkingSetMarshaller, sync, syncMarshaller, syncWorkingSet, transformExceptionParams, transformExceptionParams, transPostGetAttr, transPostPushback, transPostRefresh, transPostRemove, transPostRevert, transPostRowOp, transPostSetAttr, transPostSetAttrValues
 
Methods inherited from class oracle.jbo.server.ContainerObjectImpl
addContainerListener, removeContainerListener
 
Methods inherited from class oracle.jbo.server.ComponentObjectImpl
addListener, applyPersonalization, create, createRef, createVariableValueManager, ensureVariableManager, findOperationDefinitions, getAllProperties, getApplicationModule, getCompListeners, getCompListenersList, getDefinitionManager, getFullNameForPersDef, getHintValue, getLabel, getLabelPlural, getMessageBundleClass, getProxyClassName, getProxyClassName, getResourceBundleDef, getRootApplicationModule, getStringFromMessageBundle, getTooltip, getVariableManager, hasVariables, isDead, isPersonalized, isRegWithPiggyMan, resolvePropertyRaw, setName, setParent, setProxyClassName
 
Methods inherited from class oracle.jbo.server.NamedObjectImpl
setParent, setPropertiesMap
 
Methods inherited from class oracle.jbo.common.NamedObjectImpl
allocatePropertyMap, getFullName, getName, getParent, getProperties, getPropertiesAsStrings, getPropertiesMap, getProperty, getProperty, getPropertyExpressionsMap, getPropertyMap, getResourcesFromBundle, isPropertyExpression, mergePropertyMap, refreshProperty, removeProperty, removeProperty, requiresNamePrefixedResId, resolveObjectProperty, setFullName, setPropertiesMap2, setProperty, setProperty, setPropertyExpression, setPropertyMap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface oracle.jbo.ApplicationModule
activateState, activateState, activateState, activateStateForUndo, addWarning, clearVOCaches, createApplicationModule, createComponentObject, createCompositeViewDef, createViewLink, createViewLinkBetweenViewObjects, createViewLinkFromEntityAssocName, createViewObject, createViewObjectFromQueryClauses, createViewObjectFromQueryStmt, createViewObjectFromQueryStmt, createViewObjectOnEntity, createViewObjectOnRowSet, doPoolMessage, executeQueryOnViewObjects, fetchAttributeProperties, findApplicationModule, findComponentObject, findRSIForEntity, findViewLink, findViewObject, findViewObjectUsingEntity, findViewObjectWithParameters, getApplicationModuleNames, getApplicationModuleNames, getExceptionHandler, getListBindingName, getListBindingRSI, getMostRecentStackId, getPreferredListRSI, getReleaseLevel, getSession, getStyles, getSyncLock, getSyncMode, getTransaction, getViewLinkNames, getViewLinkNames, getViewObjectNames, getViewObjectNames, isRoot, isValidIdForUndo, passivateState, passivateState, passivateState, passivateState, passivateStateForUndo, prepareSession, prepareViewObjects, processChangeNotifications, removeState, reservePassivationId, reserveSnapshotId, resetState, resetState, setExceptionHandler, setReleaseLevel, setStoreForPassiveState, setStyles, setSyncMode, sync, transformExceptionParams
 
Methods inherited from interface oracle.jbo.ComponentObject
getDefFullName, getDefName, getFullName, getName, remove
 
Methods inherited from interface oracle.jbo.GenericHints
getHintValue, getLabel, getLabelPlural, getTooltip
 
Methods inherited from interface oracle.jbo.Properties
getProperties, getProperty, getProperty, refreshProperty
 
Methods inherited from interface oracle.jbo.VariableManagerOwner
getName
 

Constructor Detail

DFFAdfdiUIAMImpl

public DFFAdfdiUIAMImpl()
This is the default constructor (do not remove).

Method Detail

downloadDFF

public void downloadDFF()
Called from the Download button on the DFF TablesColumns worksheet. Reads the search criteria provided in the spreadsheet for DescriptiveFlexfieldSearchCriteriaVO. Then proceeds to query the DescriptiveFlexfieldVO using that criteria to get the top level descriptive flexfield metadata definition. It then transfers the data from that VO and all it's children into DescriptiveFlexfieldADFDIVO which is a transient VO. It then gets the column usage child rows - DescriptiveFlexfieldColumnUsagesVO - and moves it into another transient VO - DescriptiveFlexfieldADFDIColumnUsageTypeVO

Specified by:
downloadDFF in interface DFFAdfdiUIAM

uploadDFF

public void uploadDFF()
Called from the Upload button on the DFF TablesColumns worksheet Uploads new and modified Descriptive Flexfield information from the transient VO's updated through the data controls associated with the DescriptiveFlexfieldADFDIPageDef.xml pagedef bound to the ADFDI spreadsheet. The pattern I've used here is to grab the attributes from the denomalized flattened transient VO as they relate to the physical DFF tables and then call a corrsponding API for each table that will test to see if the row already exists. If the row exists then I update the attributes that are updatable. If the row doesn't exist then I create a new row and populate all the attributes.

Specified by:
uploadDFF in interface DFFAdfdiUIAM

newFlex

public void newFlex()
newFlex is called whenever you open the ADFDI spreadsheet. It is also called from the 'New' button in the spreadsheet. This method ensures that the transient VO's for search criteria and the maintenance VO's for the descriptive flexfield VO's and entities are refreshed and prepared to accept data from the ADFDI spreadsheet

Specified by:
newFlex in interface DFFAdfdiUIAM

downloadSegmentRows

public void downloadSegmentRows()
Called from the Download button in the Contexts/Segments Worksheet of the Descriptive Flexfield ADFDI UI. This API flattens out the context and segment entities within a Descriptive Flexfield. It includes the Global Data Elements (Global Segments) as well as the context specific segments. It queries up the contexts matching the criteria passed from the spreadsheet - Application ID , Descriptive Flexfield Code, and optionally the specfic context you wish to edit. It gets the rows from the main service VO's and populates a flattened transient VO which is bound to the Context / Segment worksheet via the DescriptiveFlexfieldADFDIPageDef. If you pass in just the Application ID and Descriptive Flexfield Code then it will query all the context and segments related contexts for the DFF.

Specified by:
downloadSegmentRows in interface DFFAdfdiUIAM

uploadSegmentRows

public void uploadSegmentRows()
Called from the Upload button in the Contexts/Segments Worksheet of the Descriptive Flexfield ADFDI UI. This API takes the flattened out the context/segment rows from DescriptiveFlexfieldADFDIContextSegmentVO and splits out the attributes to populate the context and segment entities within the Descriptive Flexfield. It looks for the Global Data Elements (Global Segments) as well as the context specific segments. It takes the attributes for the context and passes it to the context api. The context API tries to find a matching row. If it finds a match then it updates the attributes. If no match is found then it creates a new row. It follows the same pattern for the segment row. Get the segment attributes and pass it to the segment API. Segment API decides whether to update an existing row or create a new row.

Specified by:
uploadSegmentRows in interface DFFAdfdiUIAM

setUpdateFlag

public void setUpdateFlag()
Utility API to set the change flag attribute on the flattened DescriptiveFlexfieldADFDIContextSegmentVO. This API is called from the ADFDI spreadsheet whenever a row is downloaded and then updated. The ADFDI has a callback you can define to call a method on the pagedef when a row is changed. This API gets called anytime a row gets updated. The changeFlag attribute is checked as an optimization to skip any rows that were downloaded but not updated when these rows are uploaded again.

Specified by:
setUpdateFlag in interface DFFAdfdiUIAM

setInsertFlag

public void setInsertFlag()
Utility API to set the change flag attribute on the flattened DescriptiveFlexfieldADFDIContextSegmentVO. This API is called from the ADFDI spreadsheet whenever a new row is created. The ADFDI has a callback you can define to call a method on the pagedef. This API gets called anytime a row gets inserted. The changeFlag attribute is checked as an optimization to skip any rows that were downloaded but not updated when these rows are uploaded again.

Specified by:
setInsertFlag in interface DFFAdfdiUIAM

downloadTableValidatedValueSet

public void downloadTableValidatedValueSet()
Called from the Download button in the Table Validated Value Set Worksheet of the Descriptive Flexfield ADFDI UI. This API flattens out the value set and table validated entities within a Descriptive Flexfield. It queries up the contexts matching the criteria passed from the spreadsheet - value set code. It supports the notion of starts with criteria. It gets the rows from the main service VO's and populates a flattened transient VO which is bound to the Table Validated ValueSet worksheet via the DescriptiveFlexfieldADFDIPageDef. You can work on a whole series of related value sets at once either by creating a bunch of new rows in the ADFDI table validate UI table or by downloading a bunch of rows based on similar naming convensions and updating them all at the same time (HR_KOREA_*)

Specified by:
downloadTableValidatedValueSet in interface DFFAdfdiUIAM

uploadTableValidatedValueSet

public void uploadTableValidatedValueSet()
Called from the Upload button in the Table Validated Value Set Worksheet of the Descriptive Flexfield ADFDI UI. This API takes the flattened out the value set and table validated definition and calls the appropriate service cover routines to update existing rows or insert new rows

Specified by:
uploadTableValidatedValueSet in interface DFFAdfdiUIAM

getDescriptiveFlexfieldADFDI

public OAViewObjectImpl getDescriptiveFlexfieldADFDI()
Container's getter for DescriptiveFlexfieldADFDI.

Returns:
DescriptiveFlexfieldADFDI

getDescriptiveFlexfieldADFDIColumnUsageType

public OAViewObjectImpl getDescriptiveFlexfieldADFDIColumnUsageType()
Container's getter for DescriptiveFlexfieldADFDIColumnUsageType.

Returns:
DescriptiveFlexfieldADFDIColumnUsageType

getDescriptiveFlexfieldSearchCriteria

public OAViewObjectImpl getDescriptiveFlexfieldSearchCriteria()
Container's getter for DescriptiveFlexfieldSearchCriteria.

Returns:
DescriptiveFlexfieldSearchCriteria

getDescriptiveFlexfieldADFDIContextSegment

public OAViewObjectImpl getDescriptiveFlexfieldADFDIContextSegment()
Container's getter for DescriptiveFlexfieldADFDIContextSegment.

Returns:
DescriptiveFlexfieldADFDIContextSegment

getValueSetServiceAM

public oracle.jbo.server.ApplicationModuleImpl getValueSetServiceAM()
Container's getter for ValueSetServiceAM.

Returns:
ValueSetServiceAM

getDescriptiveFlexfieldADFDITableValidatedValueSet

public OAViewObjectImpl getDescriptiveFlexfieldADFDITableValidatedValueSet()
Container's getter for DescriptiveFlexfieldADFDITableValidatedValueSet.

Returns:
DescriptiveFlexfieldADFDITableValidatedValueSet

getDescriptiveFlexfieldTableValidatedSearchCriteria

public OAViewObjectImpl getDescriptiveFlexfieldTableValidatedSearchCriteria()
Container's getter for DescriptiveFlexfieldTableValidatedSearchCriteria.

Returns:
DescriptiveFlexfieldTableValidatedSearchCriteria

Oracle Fusion Middleware extensions for Applications Core API Reference
11g Release 1 (11.1.1.5)

E22562-01

Copyright © 2011 Oracle. All Rights Reserved.