Tag Archives: r12.2

How To Get Those Customizations to Work Correctly with Oracle EBS R12.2 Editioning (EBR)

Oracle e-Business Suite R12.2 Overview of Edition-Based Redefinition (EBR) in 11gR2 databases.
Oracle e-Business Suite R12.2 Overview of Edition-Based Redefinition (EBR) in 11gR2 databases.

Scenario:
Creating a new view based upon the AP.AP_SUPPLIERS table to reside in a new XXCUSTOMSCHEMA.

If you attempt the simple:

create or replace force view XXCUSTOMSCHEMA.AP_SUPPLIER_NEW_V
as
SELECT *
FROM ap.ap_suppliers ;

It works, but your data and table definition may change whenever patching editions are in-play.

If you attempt to just reference the editioned object instead:

create or replace force view XXCUSTOMSCHEMA.AP_SUPPLIER_NEW_V
as
SELECT *
FROM ap.ap_suppliers# /* or the preferred apps.ap_suppliers synonym */

You will receive the ominous ORA-38818: illegal reference to editioned object error message.

What’s missing? The XXCUSTOMSCHEMA isn’t recognized as an edition-friendly schema by Oracle’s e-Business Suite (nor the database), yet.

Create your XXCUSTOMSCHEMA in the usual way:

create user XXCUSTOMSCHEMA
identified by (password)
default tablespace USERS
temporary tablepace TEMP
profile DEFAULT
account UNLOCK;

/* as APPS user */

exec FND_ORACLE_USER_PKG.LOAD_ROW(‘XXCUSTOMSCHEMA’, ‘CUSTOM’, ‘INVALID’, NULL, ‘N’, ‘B’);

/* as SYSTEM user */

alter session set current_schema=APPS;
exec AD_ZD_PREP.ENABLE_CUSTOM_USER(‘XXCUSTOMSCHEMA’);

/* Create your SELECT grants to the editioned objects as APPS user */

grant select on ap.ap_suppliers#  to XXCUSTOMSCHEMA;

/* Create your custom view referencing the APPS synonym – which points to the editioned object */

create or replace force view XXCUSTOMSCHEMA.AP_SUPPLIER_NEW_V
as
SELECT *
FROM apps.ap_suppliers ;

This is the same process when creating procedures and functions with the usual caveat that unless it’s a 12c database, you cannot create materialized views on the editioned objects.

For the 11gR2 EBS users, you would stick with the existing non-editioned table object reference:

CREATE MATERIALIZED VIEW APPS.XXAP_SUPPLIER_NEW_MV
(
vendor_id,
vendor_name
)
AS
SELECT aps.vendor_id, aps.vendor_name
FROM ap.ap_suppliers aps;

/* The owning schema for the materialized view must have CREATE TABLE, VIEW AND INDEX privileges on the destination tablespace */

Setup and Install the Oracle EBS Integrated SOA Gateway for R12.2.x

https://blogs.oracle.com/ebusinesssuiteintegration
1317697.1Functional Diagram of the Integrated SOA Gateway in Oracle e-Business Suite

Registering the Integrated SOA Gateway included in the Oracle E-Business Suite R12.2.x instances is actually reasonably simple, but the documents make it sound much worse than it really is, simply by being several hundred pages of documentation.

The reason to do this is to expose the RESTful services interface for EBS so that other web applications can do useful things, such as check usernames for validity, lookup business process (workflow) statuses, and even query for completion of processes, such as concurrent programs.  The built-in library of accessable Services is quite vast and enables lots of interconnectivity with other applications.

This is also useful if you happen to be extending the application using the Mobile Application Framework, which allows you to build custom applications for mobile devices that access all the various EBS functionalities.

References:
NOTE:1311068.1 – Installing Oracle E-Business Suite Integrated SOA Gateway, Release 12.2
NOTE:1317697.1 – Oracle E-Business Suite Integrated SOA Gateway Troubleshooting Guide, Release 12.2

Before commencing, have the following prepared:
Unlock the ASADMIN (FND_USER) account and set the password so that it can login without a change password challenge (no expiry. required.
APPS password
Weblogic password
IP Address of ApplTier Host
Ports for ApplTier Host (both base port and WLS console – e.g. 8000 7001)
Your base port is the one in your usual EBS URL and the WLS console URL can be determined via Oracle Application Manager in the Site Map link for Weblogic Administration.
Services will be interrupted by bounce twice (2X) during installation.
Installation takes about 45 minutes to complete.

====================================  Start of SOA Integration Steps
#Register new Internal SOA Gateway Configuration

itsrv33m [/export/home/dbausr/oradev] ant -f $JAVA_TOP/oracle/apps/fnd/txk/util/txkSoaConfigUtility.xml
Buildfile: $COMMON_TOP/java/classes/oracle/apps/fnd/txk/util/txkSoaConfigUtility.xml
checkenvset:
getServerDetails:
[input] Enter Oracle WebLogic Server Administration Console URL (host:port) :
[FQWLSHostname:port]
[input] Enter Oracle WebLogic Server Admin User Name :  [weblogic]
getWLSAdminPasswordUnix:
echoON:
[input] Enter the password for user weblogic :
echoOFF:
getWLSAdminPasswordWindows:
getPasswordUnix:
echoON:
[input] Enter the password for user apps :
echoOFF:
getPasswordWindows:
getASADMINUser:
[input] Enter the ASADMIN user name :  [ASADMIN]
getASADMINPasswordUnix:
echoON:
[input] Enter the password for user ASADMIN :
echoOFF:
getASADMINPasswordWindows:
getSOAServerDetails:
[input] Enter SOA Server  Hostname : (hostname.domain)
[FQEBShostname]
itsrv36m.mwd.h2o
[input] Enter External URL of SOA Suite SOA Managed Server (protocol://managed_server_hostname:managed_server_port) :
http://%5BFQEBShostname%5D:%5Bport%5D

[input] Enter Internal URL of SOA Suite SOA Managed Server (protocol://managed_server_hostname:managed_server_port) :
http://%5BFQEBShostname%5D:%5Bport%5D

[input] Enter External URL of SOA Suite Admin Server (protocol://admin_server_hostname:admin_server_port) :
http://%5BFQWLSHostname:port%5D

commonArgs:
checkRequiredJars:
getDbcFile:
ValidateASADMINConnection:
getJDBCURL:
addASADMINToFNDVault:
[echo] ********************************************************************
[echo]                  Adding/Updating ASADMIN user in fnd_vault
[echo] ********************************************************************
[echo] Connecting to the EBS database using below properties
[echo] User: apps
[echo] JDBC Url: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=YES)(FAILOVER=YES)(ADDRESS=(PROTOCOL=tcp)(HOST=[FQhostname])(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=[$ORACLE_SID])))
[sql] Executing commands
[sql] 0 rows affected
[sql] 1 of 1 SQL statements executed successfully
[echo] Sucessfully Added/Updated ASADMIN in fnd_vault
createUserCredUpdationScript:
executeUserCredUpdationUnix:
[exec]
[exec] CLASSPATH=$CLASSPATH
[exec]
[exec] Initializing WebLogic Scripting Tool (WLST) …
[exec]
[exec] Welcome to WebLogic Server Administration Scripting Shell
[exec]
[exec] Type help() for help on available commands
[exec]
[exec]
[exec] Connecting to server using username:weblogic url:[SOAhost:port]
[exec]
[exec] Connecting to t3://[SOAhost:port] with userid weblogic …
[exec] Successfully connected to Admin Server ‘AdminServer’ that belongs to domain ‘EBS_domain_[ORACLE_SID]’.
[exec]
[exec] Warning: An insecure protocol was used to connect to the
[exec] server. To ensure on-the-wire security, the SSL port or
[exec] Admin port should be used instead.
[exec]
[exec] Creating user ASADMIN
[exec] Sucessfully created user ASADMIN
[delete] Deleting: $INST_TOP/logs/appl/rgf/TXK/updateuser_02_November_2016_08_17_38.py
executeUserCredUpdationWindows:
updateWLSuser:
updateSoaContextVariables:
[echo]  Updating Context Variable s_soa_external_url
[echo]  Updating Context Variable s_soa_internal_url
[echo]  Updating Context Variable s_soa_admin_url
runAutoconfigUnix:
[echo]  Running Autoconfig
[exec] Enter the APPS user password:
[exec]
[exec] The log file for this session is located at: $INST_TOP/admin/log/[session#]/adconfig.log
[exec]
[exec] AutoConfig is configuring the Applications environment…
[exec]
[exec] AutoConfig will consider the custom templates if present.
[exec]     Using CONFIG_HOME location     : $INST_TOP
[exec]     Classpath                   :
[exec]
[exec]     Using Context file          : $CONTEXT_FILE
[exec]
[exec] Context Value Management will now update the Context file
[exec]
[exec]     Updating Context file…COMPLETED
[exec]
[exec]     Attempting upload of Context file and templates to database…COMPLETED
[exec]
[exec] Configuring templates from all of the product tops…
[exec]     Configuring AD_TOP……..COMPLETED
[exec]     Configuring FND_TOP…….COMPLETED
[exec]     Configuring ICX_TOP…….COMPLETED
[exec]     Configuring MSC_TOP…….COMPLETED
[exec]     Configuring IEO_TOP…….COMPLETED
[exec]     Configuring BIS_TOP…….COMPLETED
[exec]     Configuring CZ_TOP……..COMPLETED
[exec]     Configuring AMS_TOP…….COMPLETED
[exec]     Configuring CCT_TOP…….COMPLETED
[exec]     Configuring WSH_TOP…….COMPLETED
[exec]     Configuring CLN_TOP…….COMPLETED
[exec]     Configuring OKE_TOP…….COMPLETED
[exec]     Configuring OKL_TOP…….COMPLETED
[exec]     Configuring OKS_TOP…….COMPLETED
[exec]     Configuring CSF_TOP…….COMPLETED
[exec]     Configuring IBY_TOP…….COMPLETED
[exec]     Configuring JTF_TOP…….COMPLETED
[exec]     Configuring MWA_TOP…….COMPLETED
[exec]     Configuring CN_TOP……..COMPLETED
[exec]     Configuring CSI_TOP…….COMPLETED
[exec]     Configuring WIP_TOP…….COMPLETED
[exec]     Configuring CSE_TOP…….COMPLETED
[exec]     Configuring EAM_TOP…….COMPLETED
[exec]     Configuring GMF_TOP…….COMPLETED
[exec]     Configuring PON_TOP…….COMPLETED
[exec]     Configuring FTE_TOP…….COMPLETED
[exec]     Configuring ONT_TOP…….COMPLETED
[exec]     Configuring AR_TOP……..COMPLETED
[exec]     Configuring AHL_TOP…….COMPLETED
[exec]     Configuring IES_TOP…….COMPLETED
[exec]     Configuring OZF_TOP…….COMPLETED
[exec]     Configuring CSD_TOP…….COMPLETED
[exec]     Configuring IGC_TOP…….COMPLETED
[exec]
[exec] AutoConfig completed successfully.
runAutoconfigWindows:
setEBSProfiles:
[echo]  Updating Profile  FND_SERVER_DESKTOP_USER
[java] Nov 02, 2016 8:21:24 AM oracle.apps.fnd.txk.util.TXKFMWGenericConfigUtility readPasswordFromStdin
[java] INFO: Enter APPS Password:
[echo]  Updating Profile FND_SERVER_SEC
[java] Nov 02, 2016 8:21:26 AM oracle.apps.fnd.txk.util.TXKFMWGenericConfigUtility readPasswordFromStdin
[java] INFO: Enter APPS Password:
[echo]  Updating Profile FND_SERVER_IP_SEC
[java] Nov 02, 2016 8:21:28 AM oracle.apps.fnd.txk.util.TXKFMWGenericConfigUtility readPasswordFromStdin
[java] INFO: Enter APPS Password:
[echo]  Updating Profile FND_SQLNET_ACCESS
[java] Nov 02, 2016 8:21:29 AM oracle.apps.fnd.txk.util.TXKFMWGenericConfigUtility readPasswordFromStdin
[java] INFO: Enter APPS Password:

ebsConfigForSOA:

BUILD SUCCESSFUL
Total time: 6 minutes 36 seconds
# Verify new Profile Option Settings
SQL Statement which produced this data:
/* Formatted on 11/17/2016 7:07:54 AM (QP5 v5.300) */
SELECT n.user_profile_option_name              NAME,
TO_CHAR (v.last_update_date, ‘DD-MON-RR’)”Last Updated”,
DECODE (v.level_id,
10001, ‘Site’,
10002, ‘Application’,
10003, ‘Responsibility’,
10004, ‘User’,
10005, ‘Server’,
10007, ‘SERVRESP’,
v.level_id)
LEVEL_SET,
DECODE (TO_CHAR (v.level_id),
‘10001’, ”,
‘10002’, app.application_short_name,
‘10003’, rsp.responsibility_key,
‘10005’, svr.node_name,
‘10006’, org.name,
‘10004’, usr.user_name,
‘10007’, v.LEVEL_VALUE2,
‘UnDef’)
“CONTEXT”,
v.profile_option_value                  VALUE
FROM fnd_profile_options      p,
fnd_profile_option_values v,
fnd_profile_options_tl   n,
fnd_user                 usr,
fnd_application          app,
fnd_responsibility       rsp,
fnd_nodes                svr,
hr_operating_units       org
WHERE     p.profile_option_id = v.profile_option_id(+)
AND p.profile_option_name = n.profile_option_name
AND UPPER (p.profile_option_name) IN (‘FND_SERVER_DESKTOP_USER’,
‘FND_SERVER_SEC’,
‘FND_SERVER_IP_SEC’,
‘FND_SQLNET_ACCESS’)
AND n.language = ‘US’
/* Use for Friendly PONs e.g. MO: Security Option
AND UPPER (n.user_profile_option_name) =
UPPER (”)
*/
AND usr.user_id(+) = v.level_value
AND rsp.application_id(+) = v.level_value_application_id
AND rsp.responsibility_id(+) = v.level_value
AND app.application_id(+) = v.level_value
AND svr.node_id(+) = v.level_value
AND org.organization_id(+) = v.level_value
ORDER BY v.last_update_date DESC;

NAME|Last Updated|LEVEL_SET|CONTEXT|VALUE
FND: Desktop Nodes allowed|02-NOV-16|User|ASADMIN|[FQhostname]

NAME|Last Updated|LEVEL_SET|CONTEXT|VALUE
SQLNet Access|02-NOV-16|Site||ALLOW_RESTRICTED

NAME|Last Updated|LEVEL_SET|CONTEXT|VALUE
FND: Validate IP address|02-NOV-16|Site||D

NAME|Last Updated|LEVEL_SET|CONTEXT|VALUE
FND: Validate User Type|02-NOV-16|Site||D

# Bounce certain services (minimizes downtime – can also bounce everything)
cd $ADMIN_SCRIPTS_HOME

admanagedsrvctl.sh stop oafm_server1
admanagedsrvctl.sh start oafm_server1
admanagedsrvctl.sh stop oacore_server1
admanagedsrvctl.sh start oacore_server1
[etc for any other oacore servers]

#Verify registered payload Class ID (ensures payload can be accessed)
SQL Statement which produced this data:
SELECT class_id
FROM fnd_irep_classes
WHERE     UPPER (irep_name) LIKE ‘%EBIZHOMEPAGESERVICE%’
AND class_type = ‘SERVICEBEAN’;

CLASS_ID
[a Number]

#Try downloading the payload for a specific function (Class ID discovered above)
XSD.zip DEV2 URL:  http://%5ByourEBSURL:port%5D/webservices/isgagent/?generatexsd=%5Bthe above number]
XSD.zip

# Configure the ISG BPEL Payload for use by SOA Suite
ant -f $JAVA_TOP/oracle/apps/fnd/bpel/util/txk_integration_packager.xml \ -DIntegration=isg  -DFMWNodeName=itsrv33m.mwd.h2o -DFMWIpAddress=[MT or Virtual host IP]
[echo] Bpel Payload is archived at $INST_TOP/logs/appl/rgf/TXK/EBS_BPEL_payload.zip

# Verify the “new” SOA Node is registred (MWD is just re-using the built in SOA)
SQL Statement which produced this data:
SELECT node_name, server_address, server_id
FROM fnd_nodes
WHERE UPPER(node_name) in(‘[hostname]’);

NODE_NAME|SERVER_ADDRESS|SERVER_ID
[hostname]|[IP address]|3E3B399AEB80184EE0548A507414599D22425228221243006566902023757213

# A Fix for HPUX, if needed, add set +u to the line right after #!/bin/sh
# vi $FMW_HOME/user_projects/domains/EBS_domain_$TWO_TASK/bin/setDomainEnv.sh

. $FMW_HOME/user_projects/domains/EBS_domain_$TWO_TASK/bin/setDomainEnv.sh

# Warning: the following command will immediately shutdown and restart the WLS Managed Services
ant -f $JAVA_TOP/oracle/apps/fnd/txk/util/txkISGConfigurator.xml ebsSetup

# Change default NAME=APPS connection to NAME=ASADMIN in WLS Admin Console.
# (you want to do this to support APPS password changes in the future – the ASADMIN
# password does not have to be disclosed to Developers once the setup is completed – just
# grant the Integrated SOA Gateway Role and Responsibility to users that need to deploy
# various services.

Data Sources -> OAEADatasource -> Configuration -> Connection Pool
[Lock & Edit]
Modify Properties user=APPS -> user=ASADMIN
Enter ASADMIN password in both password fields
[Save] -> [Activate Changes]

If the ASADMIN password is changed in the target EBS instance, then all of the following steps need to be re-executed in order to register the change with SOA:

# Clean out the prior OAEADatasource connections and definitions
Login to WLS Administration Console.
Services -> Data Sources -> [Lock & Edit] -> Select OAEADatasource -> [Delete]
Security Realms -> myrealm -> Providers -> Select IsgAuthenticator -> [Delete]
[Activate Changes]

$] cd $DOMAIN_HOME/config/jdbc
$] rm OAEADatasource-*-jdbc.xml

Repeat the SOA Integration steps again.

Otherwise, attempting REST deployments will receive an error:
Error
java.lang.SecurityException: User: ASADMIN~~[ORACLE_SID], failed to be authenticated.

R12.2 adop phase fs_clone fails because it can’t copy a file.

Complexity leading to fragility
Complex Systems Integration (Courtesy of: https://www.mulesoft.com/resources/esb/business-process-integration)

Oracle…sometimes blinding in complexity, and a foreshadowing of what happens when a system becomes so complex that it becomes fragile.

This is what the screen session looks like:

adnodemgrctl.sh: check the logfile /u01/oradev/fs1/inst/apps/DEV2_itsrv33m/logs/appl/admin/log/adnodemgrctl.txt for more information …
[UNEXPECTED]fs_clone has failed.
[STATEMENT] Please run adopscanlog utility, using the command
“adopscanlog -latest=yes”
to get the list of the log files along with snippet of the error message corresponding to each log file.
adop exiting with status = 2 (Fail)

Here is what it looks like in the adop.log

[EVENT]     Performing CLONE steps.
[PROCEDURE] [START 2016/11/08 08:20:19] CLONE Patch File System from Run File System
[PROCEDURE] Calling: /u01/oradev/fs2/EBSapps/appl/ad/12.0.0/patch/115/bin/txkADOPPreparePhaseSynchronize.pl
[EVENT]     Log: /u01/oradev/fs_ne/EBSapps/log/adop/25/20161108_081645/fs_clone/itsrv33m
[UNEXPECTED]Error occurred running “perl /u01/oradev/fs2/EBSapps/appl/ad/12.0.0/patch/115/bin/txkADOPPreparePhaseSynchronize.pl -contextfile=/u01/oradev/fs2/inst/apps/DEV2_itsrv33m/appl/admin/DEV2_itsrv33m.xml -patchcontextfile=/u01/oradev/fs1/inst/apps/DEV2_itsrv33m/appl/admin/DEV2_itsrv33m.xml -promptmsg=hide -console=off -mode=create -sync_mode=copy -sessionid=25 -timestamp=20161108_081645 -outdir=/u01/oradev/fs_ne/EBSapps/log/adop/25/20161108_081645/fs_clone/itsrv33m”
[UNEXPECTED]occurred during CLONE Patch File System from Run File System, running command: “perl /u01/oradev/fs2/EBSapps/appl/ad/12.0.0/patch/115/bin/txkADOPPreparePhaseSynchronize.pl -contextfile=/u01/oradev/fs2/inst/apps/DEV2_itsrv33m/appl/admin/DEV2_itsrv33m.xml -patchcontextfile=/u01/oradev/fs1/inst/apps/DEV2_itsrv33m/appl/admin/DEV2_itsrv33m.xml -promptmsg=hide -console=off -mode=create -sync_mode=copy -sessionid=25 -timestamp=20161108_081645 -outdir=/u01/oradev/fs_ne/EBSapps/log/adop/25/20161108_081645/fs_clone/itsrv33m”.
[EVENT]     Releasing managed server ports.
[PROCEDURE] [START 2016/11/08 08:30:55] Releasing ports
[STATEMENT] Calling task: “Releasing ports on itsrv33m”; script: “/u01/oradev/fs2/inst/apps/DEV2_itsrv33m/admin/install/txkCloneAcquirePort.pl”; args: ” -option=close -server=itsrv33m.mwd.h2o -ports=5570,7015,7615,7415,7215,7216,7217,7815,6114,6214,10013 -log=/u01/oradev/fs_ne/EBSapps/log/adop/25/20161108_081645/fs_clone/itsrv33m/txkCloneAcquirePort.log”
[PROCEDURE] [START 2016/11/08 08:30:56] Releasing ports on itsrv33m
[PROCEDURE] Calling: /u01/oradev/fs2/inst/apps/DEV2_itsrv33m/admin/install/txkCloneAcquirePort.pl
[EVENT]     Log: /u01/oradev/fs_ne/EBSapps/log/adop/25/20161108_081645/fs_clone/itsrv33m/txkCloneAcquirePort.log
[PROCEDURE] [END   2016/11/08 08:30:57] Releasing ports on itsrv33m
[PROCEDURE] [END   2016/11/08 08:30:57] Releasing ports

How cryptic!  Looks complicated.  This system happens to have AD/TXK.Delta.8, so the logs related to adop are all being centralized under the session # (in this case “25”.)

Diving deep into the log subdirectories:

/u01/oradev/fs_ne/EBSapps/log/adop/25/20161108_081645/fs_clone/itsrv33m/TXK_SYNC_create/txkADOPPreparePhaseSynchronize.log

================================
Inside copyComnUtil()…
================================

Directory /u01/oradev/fs1/EBSapps/comn already exists.
Removing the directory: /u01/oradev/fs1/EBSapps/comn/util

Copying the directory
———————
SOURCE : /u01/oradev/fs2/EBSapps/comn/util
TARGET : /u01/oradev/fs1/EBSapps/comn/util

Execute SYSTEM command : cp -rH  /u01/oradev/fs2/EBSapps/comn/util /u01/oradev/fs1/EBSapps/comn/util
EXIT STATUS: 1
Copied /u01/oradev/fs2/EBSapps/comn/util into /u01/oradev/fs1/EBSapps/comn/utilLOG FILE: /u01/oradev/fs_ne/EBSapps/log/adop/25/20161108_081645/fs_clone/itsrv33m/TXK_SYNC_create/cp_rH.out

<snip>
======================================
Inside copyCloneLogsToFSNE()…
======================================

Creating the directory: /u01/oradev/fs_ne/EBSapps/log/adop/25/20161108_081645/fs_clone/itsrv33m/TXK_SYNC_create/fsclone_apply

Copying the directory
———————
SOURCE : /u01/oradev/fs2/inst/apps/DEV2_itsrv33m/admin/log/clone
TARGET : /u01/oradev/fs_ne/EBSapps/log/adop/25/20161108_081645/fs_clone/itsrv33m/TXK_SYNC_create/fsclone_apply

/u01/oradev/fs2/EBSapps/comn/adopclone_itsrv33m/bin/adclone.pl did not go through successfully.
LOG DIRECTORY: /u01/oradev/fs_ne/EBSapps/log/adop/25/20161108_081645/fs_clone/itsrv33m/TXK_SYNC_create/fsclone_apply.
*******FATAL ERROR*******
PROGRAM : (/u01/oradev/fs2/EBSapps/appl/ad/12.0.0/patch/115/bin/txkADOPPreparePhaseSynchronize.pl)
TIME    : Tue Nov  8 08:30:55 2016
FUNCTION: main::runFSCloneApply [ Level 1 ]
ERRORMSG: /u01/oradev/fs2/EBSapps/comn/adopclone_itsrv33m/bin/adclone.pl did not go through successfully.

/u01/oradev/fs_ne/EBSapps/log/adop/25/20161108_081645/fs_clone/itsrv33m/TXK_SYNC_create/fsclone_apply/FSCloneApplyAppsTier_11080821.log

(One innocuous, but annoying file, owned by someone other than applmgr, and happened to be 600 (user read/write only):)

Done copying /u01/oradev/fs2/EBSapps/appl/wms to /u01/oradev/fs1/EBSapps/appl/wms/
Copying /u01/oradev/fs2/EBSapps/appl/gmf to /u01/oradev/fs1/EBSapps/appl/gmf/
WARNING:
.end std out.
cp: cannot open /u01/oradev/fs2/EBSapps/appl/mwd/12.0.0/sql/MWDPOLPO.xsl: Permission denied

.end err out.
WARNING: Copying of /u01/oradev/fs2/EBSapps/appl/mwd failed
ERROR: Copying failed, so stopping all the parallel threads
Done copying /u01/oradev/fs2/EBSapps/appl/okc to /u01/oradev/fs1/EBSapps/appl/okc/
WARNING: Copying of /u01/oradev/fs2/EBSapps/appl/okc failed
Done copying /u01/oradev/fs2/EBSapps/comn/java/classes/oracle/apps/pqh to /u01/oradev/fs1/EBSapps/comn/java/classes/oracle/apps/pqh/
WARNING: Copying of /u01/oradev/fs2/EBSapps/comn/java/classes/oracle/apps/pqh failed
Done copying /u01/oradev/fs2/EBSapps/appl/gmf to /u01/oradev/fs1/EBSapps/appl/gmf/
WARNING: Copying of /u01/oradev/fs2/EBSapps/appl/gmf failed
Done copying /u01/oradev/fs2/EBSapps/comn/java/classes/oracle/apps/ies to /u01/oradev/fs1/EBSapps/comn/java/classes/oracle/apps/ies/
WARNING: Copying of /u01/oradev/fs2/EBSapps/comn/java/classes/oracle/apps/ies failed
Done copying /u01/oradev/fs2/EBSapps/appl/msc to /u01/oradev/fs1/EBSapps/appl/msc/
WARNING: Copying of /u01/oradev/fs2/EBSapps/appl/msc failed
Done copying /u01/oradev/fs2/EBSapps/appl/ams to /u01/oradev/fs1/EBSapps/appl/ams/
WARNING: Copying of /u01/oradev/fs2/EBSapps/appl/ams failed
Done copying /u01/oradev/fs2/EBSapps/appl/cs to /u01/oradev/fs1/EBSapps/appl/cs/
WARNING: Copying of /u01/oradev/fs2/EBSapps/appl/cs failed
START: Inside exitClone….
Updating status INCOMPLETE for ApplyApplTop
START: Updating status INCOMPLETE for action ApplyApplTop
END: Updated status INCOMPLETE for action ApplyApplTop

One file.  A single file.  Could have been a hidden file. Could have been anywhere in the entire AppsTier filesystem.  This one file stopped ADOP cold from performing.  This happened to be phase=fs_clone, but could have been a patching session, or a post-clone config (adcfgclone.pl) session.

Remove the file, and:

The fs_clone phase completed successfully.
adop exiting with status = 0 (Success)

Complexity leads to unintentional fragility.

Oracle Configuration Manager Quick Tip – EBS R12.2 Disconnected Collections

Collecting Disconnected Mode OCM data for e-Business Suite R12.2
per MOS Document ID 1447334.1 - Oracle E-Business Suite Release 12.2: Release Notes for Oracle Configuration Manager
My Oracle Support - Download Collector page
MOS Oracle Configuration Manager Collector Download screen.
This method is used whenever your EBS instance is behind a firewall and no proxy server is available to reach the OCM collector end-point (ccr.oracle.com)

The reason you want to use OCM is not only because it provides a complete catalog of your Oracle software versions, modules and plug-ins, so that they can easily be associated with a Service Request (SR) instead of the analyst asking for every RDA script being run for every component in your application and database. 

It also enables the full functionality of that Systems Tab in My Oracle Support (buried just above your Settings menu) that allows you to do light versions of lifecycle management comparisons (such as what the instance looked like 2 weeks ago versus now) without having to own the OEM Lifecycle Management license. It comes compliments of your support agreement.

This also enables the full functionality of the patch and security recommendations section vital towards identifying high priority one-off patches specific to your particular configuration and platform.

Basically, instead of having a cron job periodically automatically upload the configurations to ccr.oracle.com, you will be creating the same staged configuration file, but uploading it to your Customer Support Identifier (CSI) via a Draft Service Request (SR) or a currently Open SR via the File Attachment... feature of the SRs.

In the background of MOS is a managed file transfer handler that looks for the specifically named "ocmconfig.jar" files and when detected, route them over to the Configuration Manager engine for automatic uploading to your CSI account.

While not as convenient as the automatic cron method, for those of use with no direct internet connectivity to ccr.oracle.com, our OEM and MOS functionalities become quite limited if the configurations aren't present under our CSI's.e.g. ORACLE_BASE=/u01/app/oracle
# Oracle DB Home cd $ORACLE_HOME unset ORACLE_CONFIG_HOME export JAVA_HOME=$ORACLE_HOME/jdk cd $ORACLE_HOME/ccr # Clear prior CCR installation, if required. rm -rf $ORACLE_HOME/ccr/* cd $ORACLE_HOME unzip <patch_stage_dir>/p5567658_<ver>_<platform>.zip cd $ORACLE_HOME/ccr/bin # Run setupCCR in Disconnected mode ./setupCCR -s -d # Create ORACLE_OCM user and related grants . $ORACLE_HOME/ccr/admin/scripts/installCCRSQL.sh collectconfig -s <SID> -r SYS # Additional grants for APPS EBS Collector . $ORACLE_HOME/ccr/admin/scripts/installCCRSQL.sh ebs_collectconfig -u <APPSUSERNAME> # Run the collection and generate the ocmconfig.jar cd $ORACLE_HOME/ccr/bin ./emCCR collect # ocmconfig.jar location $ORACLE_HOME/ccr/hosts/$HOSTNAME/state/upload # Oracle 10.1.2 iAS Home . $ORACLE_BASE/EBSapps.env run export ORACLE_HOME=$ORACLE_HOME export ORACLE_CONFIG_HOME=$INST_TOP/ora/10.1.2 export JAVA_HOME=$ORACLE_HOME/jdk # Remove prior OCM config, if needed rm -rf $ORACLE_HOME/ccr/* rm -rf $ORACLE_CONFIG_HOME/ccr/* cd $ORACLE_HOME unzip <patch_stage_dir>/p5567658_<ver>_<platform>.zip # Bugfix specific to HP-UX Itanium - verify file permissions to execute chmod 754 $ORACLE_HOME/ccr/bin/deployPackages chmod 754 $ORACLE_HOME/ccr/bin/emSnapshotEnv cd $ORACLE_HOME/ccr/bin ./setupCCR -s -d # Disconnected mode # Run the collection and generate the ocmconfig.jar cd $ORACLE_HOME/ccr/bin ./emCCR collect # ocmconfig.jar location $INST_TOP/ora/10.1.2/ccr/state/upload #Repeat for patch filesystem; . $ORACLE_BASE/EBSapps.env patch # Oracle FMW WebLogic Home # source the Domain environment . $ORACLE_BASE/EBSapps.env run . $EBS_DOMAIN_HOME/bin/setDomainEnv.sh export ORACLE_HOME=$FMW_HOME/utils export ORACLE_CONFIG_HOME=$INST_TOP/ora/FMW # Remove prior OCM config, if needed rm -rf $ORACLE_HOME/ccr/* rm -rf $ORACLE_CONFIG_HOME/ccr/* cd $ORACLE_HOME unzip <patch_stage_dir>/p5567658_<ver>_<platform>.zip # Bugfix specific to HP-UX Itanium - verify file permissions to execute chmod 754 $ORACLE_HOME/ccr/bin/deployPackages chmod 754 $ORACLE_HOME/ccr/bin/emSnapshotEnv cd $ORACLE_HOME/ccr/bin ./setupCCR -s -d # Disconnected mode # Run the collection and generate the ocmconfig.jar cd $ORACLE_HOME/ccr/bin ./emCCR collect # ocmconfig.jar location $INST_TOP/FMW/ccr/state/upload #Repeat for patch filesystem; . $ORACLE_BASE/EBSapps.env patch # Upload all of your ocmconfig.jar files (can be named uniquely - e.g. mydbocmconfig.jar) per MOS Document ID 763142.1 - How to upload the collection file ocmconfig.jar to My Oracle Support for Oracle Configuration Manager (OCM) running in Disconnected Mode.
# Also can ZIP up all of them at once and upload them to your Draft SR (or current open SR as long as you're happy with the CSI (Customer Support Identifier) that will receive the new configurations.
# Trick is have the string "ocmconfig" and .jar as the extension of each file
Have fun with your new Systems tab in My Oracle Support!

R12.2 Overview for Developers (Oracle e-Business Suite)

We are upgrading our Oracle e-Business Suite from 12.1.3.6 to 12.2.3.

This is a preparatory session prepared for our Development Team and may be useful to others.  All copyrights reserved; no reproduction without permission.

AUS_R12_2_for_Developers_@jhlui1 (PDF Link)

Contents Outline:

  • R12.2 Overview For Developers
  • May 5, 2014
  • James H. Lui, OCP
  • Sr. Oracle Applications DBA
  • @jhlui1

What’s Covered

  • What’s an Edition?
  • What’s an Online Patch?
  • How is Development Affected?
  • Examples
  • What Can I Do?

What’s an Edition? (Doc ID 1489116.1)

  • An edition is like a workspace or private environment where database objects are redefined. When we are satisfied with the change that we have made, those changes in the edition can be then rolled out to all the application users.
  • With Edition-Based Redefinition you can have two objects with the same name, as long as they are in different Editions.
  • An edition is effectively a version label that can be assigned to all editionable objects in a schema.

–When a new edition is used by a schema, all editionable objects are inherited by the new edition from the previous edition.

–These objects can subsequently then be altered or dropped as desired, but doing so will stop the inheritance of that object.

–From Oracle database 11gR2 onwards, each database has at least one edition, the default being ORA$BASE.

–The default edition can be displayed using the DATABASE_PROPERTIES view.

<illustration>

What Objects Can Be Editioned?

  • (Doc ID 1489116.1)
  • <illustration>

The following object types are editionable:

  • FUNCTION
  • LIBRARY
  • PACKAGE and PACKAGE BODY
  • PROCEDURE
  • TRIGGER
  • TYPE and TYPE BODY
  • SYNONYM
  • VIEW

Review contents of the APPS versus APPS_NE schemas for detai

What are The Rules for Editioning?

  • (Doc ID 1489116.1 – there are more…)

A non-editionedobject cannot depend on an editioned object.

Some examples:

– A public synonym cannot refer to an editioned object.
(why APPS-owned synonyms take precedence)

– A function-based index cannot depend on an editioned function.

– A materialized view cannot depend on an editioned view.
(why a lot of MV’s are invalidated in 12.2)

– A table cannot have a column of a user-defined data type (collection or Abstract Data Type/ADT) whose owner is editions-enabled (APPS is, APPS_NE isn’t.)

– A noneditioned subprogram cannot have a static reference to a subprogram whose owner is editions-enabled.
(APPS_NE.<package> cannot reference APPS.<function>)

Editioning Example: PTCHARMK

  • (adop phase=prepare in-progress)
  • SQL Statement which produced this data:
  • SELECT * FROM dba_editions;
  • <illustration>
  • What’s an Edition? (Doc ID 1489116.1)
  • SELECT property_value
    FROM database_properties
    WHERE property_name = ‘DEFAULT_EDITION’;
    <illustration>
  • ALTER SESSION SET edition=V_20140428_1435;

<illustration>

  • SELECT SYS_CONTEXT(‘USERENV’, ‘SESSION_EDITION_NAME’) AS edition FROM dual;

<illustration>

What’s an Online Patch?(Doc ID 1583902.1)

  • Online patching is a new patching mechanism that allows the application of patches while the system is up and running, and the users are working as normal (…while ensuring object version consistency.)
  • What are the phases that make up the Online Patching cycle?

–Prepare a virtual copy (patch edition) of the running application (run edition).

–Apply patches to the patch edition of the application.

–Finalize the system in readiness for the cutover phase.

–Cutover to the patch edition and make it the new run edition.

–Cleanup obsolete definitions or data to recover space.

  • When a patch is applied, adop will:

Synchronizethe contents of the run file system to the patch file system. (phase=prepare)

Apply patching actions on the patch file system. (phase=apply)

–During the cutover phase, the adoputility (phase=cutover) :

  • Restartsthe application tier services.
  • Swap [Patch FS] <-> [Run FS]

Online Patching: Our Filesystem (note: we moved the $INST_TOP down a level from /u01 to facilitate preservation as a separate NFS mount during refreshes)

  • /u01

–fs1/

–fs2/

–fs_ne/

–inst/

–oraInventory/

  • Online Patching: The Environment

<illustration>

Online Patching: Switching Envs(Doc ID 1545584.1 – Requires 12.2.2 minimum)

Change directory to the Base directory and run script EBSapps.env giving “run” or “patch” as argument, eg:

cd /u01/oracle/EBS122

. ./EBSapps.env run

E-Business Suite Environment Information

—————————————-

RUN File System : <EBS base dir>/fs1/EBSapps/appl

PATCH File System : <EBS base dir>/fs2/EBSapps/appl

Non-Editioned File System : <EBS base dir>/fs_ne

DB Host: <hostname.domain name> Service/SID: <SID>

Sourcing the RUN File System …

Online Patching: Switching Envs(Doc ID 1545584.1 – for PTCHARMK at 12.2.0)

Use fsauto<SID>.sh(already included in the applptch .profile)

cd ~

. ./fsauto${ORACLE_SID}.sh

Running fsauto 1.0 :

Context Name (<SID_host>) : PTCHARMK_aburpaofinm01

RUNEdition APPL_TOP     : /u01/fs1

PATCHEdition APPL_TOP   : /u01/fs2

APPL_TOP environment file : /u01/fs1/EBSapps/appl/APPSPTCHARMK_aburpaofinm01.env

Non-Editioned File System : /u01/fs_ne/EBSapps/appl

Instance Top Directory   : /u01/inst/fs1/inst/apps/PTCHARMK_aburpaofinm01

Admin Scripts Home       : /u01/inst/fs1/inst/apps/PTCHARMK_aburpaofinm01/admin/scripts

Setting RUN Edition APPL_TOP environment for /u01/fs1 …

Current PATCH_TOP: /mnt/nfs/ebs/122postinstall

applptch@aburpaofinm01 $>

What’s an Online Patch?

  • (Checking for Active Patching Sessions)
  • SELECT ADOP_SESSION_ID,
  • PREPARE_STATUS,
  • APPLY_STATUS,
  • FINALIZE_STATUS,
  • CUTOVER_STATUS,
  • CLEANUP_STATUS,
  • ABORT_STATUS,
  • STATUS,
  • ABANDON_FLAG,
  • NODE_NAME
  • FROM AD_ADOP_SESSIONS
  • ORDER BY ADOP_SESSION_ID;

What’s an Online Patch?

  • (Why should I care?)

Q: Based on the below information querying the AD_ADOP_SESSIONS table in PTCHARMK:

<illustration>

  1. Which patching session will go first, and when?
  2. Which filesystem (fs1 or fs2) and edition is Run versus Patch?
  3. Where should my custom object/code/form/report go to test in this instance?
    <illustration>
  • What’s an Online Patch?
    (Why should I care?)

Q: Based on the below information querying the AD_ADOP_SESSIONS table in PTCHARMK:

  1. Which patching session will go first, and when?
  2. Which filesystem and edition is Run versus Patch?
  3. Where should my custom object/code/form/report go to test in this instance?
    <illustration>

Examples: Editioned View
(Why we use APPS.AR_DEBUGinstead of AR.AR_DEBUG)

/* ObjName | ObjType | ObjParent | ObjOwner
AR_DEBUG | TABLE | | AR
AR_DEBUG# |VIEW | | AR
AR_DEBUG | SYNONYM | | APPS

Synonym APPS.AR_DEBUG */
/* Formatted on 5/1/2014 3:26:22 PM (QP5 v5.256.13226.35510) */
CREATE OR REPLACE FORCE EDITIONING VIEW AR.AR_DEBUG#
(
DEBUG_TYPE,
ITEM_TYPE,
ITEM_KEY,
ACTIVITY_NAME,
EXECUTION_DATE,
DEBUG_MESSAGE
)
AS
SELECT DEBUG_TYPE DEBUG_TYPE,
ITEM_TYPE ITEM_TYPE,
ITEM_KEY ITEM_KEY,
ACTIVITY_NAME ACTIVITY_NAME,
EXECUTION_DATE EXECUTION_DATE,
DEBUG_MESSAGE DEBUG_MESSAGE
FROM “AR”.”AR_DEBUG”;
CREATE OR REPLACE SYNONYMAPPS.AR_DEBUGFOR AR.AR_DEBUG#;

GRANT DELETE, INSERT, SELECT, UPDATE, DEBUG ON AR.AR_DEBUG#TO APPS WITH GRANT OPTION;

GRANT SELECT ON AR.AR_DEBUG# TO XXUSR_SELECT_R;

Examples: PL/SQL Package
(APPS.ACCOUNT_MGR)

<illustration>

Examples: PL/SQL Package
(APPS.ACCOUNT_MGR)

<illustration>
How is Development Affected?
(Doc ID 1489116.1)
Not using an APPS.<editioned object synonym>

–Views: disappearing/appearing columns, indexes, even data

–PL/SQL: dropped/altered/changed API’s, usage, references

–Triggers: disappearing/appearing constraints, functional changes

–Types: disappearing/appearing columns, indexes, even data

–Synonyms: pointers change: ViewsóTables, all the above

  • Invalid Objects Appear After Patching
  • Functional Code Behavior Changes After Patching
  • If another Developer is using an Edition:The DEFAULT_EDITION can change without warning

What to Do?

  • Always Be Aware of other Patching or Development activity going on in the instance
  • Stage Filesystem-based Code in both RUN_BASE and PATCH_BASE
  • Scheduling of Data Changes is Critical (changes can vanish)
  • Announce to all other Users if Creating/Cutting-Over a New Edition
  • Flag all Base-Object Customizations for Detection during PPA

How to Flag a Customization

  • (OAM -> Site Map -> [Maintenance] -> Register Flagged Files)
  • <illustration>

How to Flag a Customization

  • (OAM -> Site Map -> [Maintenance] -> Register Flagged Files)
  • <illustration>

MOS References

  • (support.oracle.com – CSI: 19086017)
  • Deploying Customizations in Oracle E-Business Suite Release 12.2 (Doc ID 1577661.1)
  • Master Note: Overview of Oracle Edition-Based Redefinition (EBR) (Doc ID 1489116.1)
  • Oracle E-Business Suite Release 12.2: Online Patching FAQ
    (Doc ID 1583902.1)
  • Oracle Application Framework Release Notes for Release 12.2.3 (Doc ID 1593782.1)
  • Where to Deploy Custom Java [default: $JAVA_TOP/*]
    (Doc ID 1609939.1)
  • Oracle E-Business Suite Release 12.2 Information Center
    (Doc ID 1583153.1)

An in-depth white paper prepared for the NorCalOAUG by John Peters (2/2014):

http://jrpjr.com/paper_archive/12_2_development.pdf

Oracle e-Business Suite Release R12.2 (.2) Upgrade – New Features Summary

Because my company asked for this, and I couldn’t find a readily available My Oracle Support document that is concise enough.

Based primarly upon:

Oracle E-Business Suite Release 12.2 Release Value Propositions (Doc ID 1580742.1)

With additions from notes by Steve Sutphin on LearningWerks.

Modules Being Covered in this Summary

  • Application Technology
  • Asset Lifecycle Management
  • Customer Relationship Management
  • Financials
  • Procurement
  • Human Capital Management

Not all modules are covered herein (e.g. Supply Chain, Project Billing, Project Management, Value Chain) simply because we don’t have them in-use, so I couldn’t validate the accuracy of those modules.

Applications Technology - User Interfaces, Infrastructure

Oracle EBS Release 12.2 Technology Stack
Oracle EBS Release 12.2 Technology Stack
  • WebLogic Server (11.1.1.6) replacing iAS (10.1.3)
    • [10.1.2 stays for Forms and Reports]
  • Mobile Certification for OA Framework
    • iPad, iPhone, Android
  • Report Manager and Web ADI
    • Certified for MS Office 2010/32-bit
  • Integrated SOA Gateway
    • Now on WebLogic for improved integration
  • Online Patching
    • Editioned filesystem and DB objects allow side-by-side Production and Test codesets with minimal switchover downtime.

Oracle EBS Release 12.2 Online Patching Process

  • Numerous OAFramework User Interface Cosmetic and Usability Improvements

Assets (Asset Lifecycle Management,  not FA) - Workflow, Productivity

  • Support for Asset Moves
    • Transactable Assets Allows Users To Move Assets In And Out Of Inventory, Transfer Assets From One Inventory Organization To Another, And Transfer Assets From One External Location To Another External Location
  • Enhanced Integration/Ease of Use
    • Asset Sale
    • Asset Retirements
    • Project-to-Project Material Transfers
    • Grouping of Serialized Items
  • Asset Tracking Mass Update

Customer Relationship Management - Revenue Tracking

  • Channel Revenue Management
    • Increased Automation in AR Deductions Settlement
    • Accrual Accounting with Trade Profiles
    • Extended Business Processes for Supplier Ship and Debit
    • Price Protection Agreements
  • Oracle Telesales
    • Visibility to Activities across Operating Units
    • Competitor Tracking at Product Level

Financials - Productivity, Controls

  • Cross-Module Enhancements
    • Multi-Org Access Control Security profiles that now support a list of operating units
    • Ledger Sets Ledgers sharing the same Chart of Accounts, Calendar and Period Type
    • Advanced Global Intercompany System (AGIS)
    • New Bank Account Model Single access point for defining and maintaining bank accounts in AP, AR, Collections, Payroll, CashMgt, & Treasury
  • Advanced Collections
    • Party (Customer) Level Bankruptcy Tracking
    • Support for Partial Disputed Transaction Amounts
  • Assets
    • Enh. Mass Additions I/F for Legacy Conversions
    • Automated Depr. Rollback for Selected Assets
    • Impairments/Unplanned Depreciation Visibility
    • Addl. BI Publisher Reports
  • Cash Management
    • Simplified Setup and Streamlined Bank Account Reconciliation
    • Reconciliation Success Rates for First Notice Items (FlexMatch)
    • Centrally-stored Balance History – Trends and Cash Positions
    • Flexible Cash Pooling
    • Maintain and Report on Authorized Signatories
  • Customer Data Hub
    • Tax Validation Management with Tax Geography Hierarchy
    • DQM Overview Dashboard
    • DQM public Application Programming Interface
    • Real-time Address Validation for Tax Purposes
  • e-Business Tax
    • Application of Specific Tax Configs to Business Entities
    • Tax Simulator and Determination Services
    • Customer Tax Information Import
  • General Ledger
    • Allocate Financial Data From One Or More Ledgers To A Different Target Ledger
    • Data Access Sets and Ledger Sets
    • Journal Batch Copy
    • Alternate Account UI
    • New Web-based Account Analysis & Drilldown
    • Flaggable As Non-Reversable Journal Sources
    • Integration to Hyperion DRM and Fusion Acctg Hub
  • Internet Expenses (iExpense)
    • Global Per Diem and Mileage Rates
    • Mileage Accumulation
    • Automatic Matching of Advance Payments
    • Flexible Application of Cash Advances
    • Payment Holds and Automatic Notifications
    • Enhanced Itemization Controls
    • New Audit Expense Report
    • Auto-Itemization of Expenses from Visa/AMEX
    • Parallel Approvals
    • New Header-level Document Attachments
    • Support for new iOS/Android Mobile Expenses
  • Payables
    • New User Interface For Supplier Entry And Maintenance
    • Centralized Bank Account Definitions (see Summary)
    • Improved Invoice Processing with Invoice Lines
    • Contract Financing, Retainage, and Progress Terms
    • Line-Level Invoice Approval Workflows
    • Self-Service Entry for Non-PO Invoices
    • Improved iSupplier Portal
    • Scheduled AP/AR Netting Batches
  • Receivables
    • Partial Period Revenue Recognition
    • Event-based Revenue Management
    • New Credit Card Error Handling
    • Improved Chargeback Reconciliation
    • Oracle Bill Presentment Architecture (BPA)
    • Customer Communication – Auto PDF Printing
    • New Sweep Invalid Distributions Report Details of the accounting exceptions that are holding the period close for review and action. If the amount involved is not material from the reporting perspective and resolving the accounting exceptions is likely to delay the period close, then the transactions with invalid accounting can be swept to the next open period.
    • Automated Auto Lockbox Processing (via CP)
    • API Support for Unidentified Receipt Assignments
  • Subledger Accounting
    • Enhanced Multi-Reporting Currency Functionality
    • Improved Reporting and Analysis with Supporting References
  • Treasury
    • New Automatic Floating Rate Reset for Bonds
    • Automated Cash Pooling Across Legal Entities
    • Automatic Bank Account Update for Redirecting Payments to a New Bank Account

Projects - Efficiencies

  • Project Costing
    • Labor Rate Schedules by Criteria
    • Enhanced Payroll Integration
    • Total Time Costing
    • Increased Control and Visibility for Multi-Funded Contingent Workers
    • Allocate Funding Based On Time And Expense Entry
    • Batch Processing of Mass Adjustments

Procurement - Efficiencies

  • iProcurement
    • Automatic Updates of Encumbrance Dates
    • Eligible Information Template Information Stored as Attachments
    • Override Employee Charge Account Preference
    • Dual Budgetary Controls (Encumbrance Acctg)
    • Item Master Attachments Support
    • Post-Approved PO Requisition Attachment Support
    • PO Import Process Can Use Account Generator Auto-generate Charge Accounts during Requisition Import (blank charge accounts)
  • iSupplier Portal
    • Enhanced Prospective Supplier Registration – Adaptive Supplier Onboarding
    • E-Kanban Support (Flow Manufacturing)
    • Enh. Supplier Contact Information Data URL, Alt. Contact Name/Phone
  • Purchasing
    • Automatic Updates of Encumbrance Dates
    • Additional WF Extensions for Custom Validations
  • Procurement Contracts
    • Multiple Templates Applied to Purchasing Docs
    • New API’s for Templates, Questions and Constants
    • New Clause Descriptor Field
    • Clause Mandatory Attribute at Rule Level
    • Clause Section Placement by Contract Expert
    • Deletion of Provisional Sections from Solicitation to Award
    • Instruction Text including URLs
    • Multi-Row Contract Clause Variables
    • Display and Sort by Clause Number
    • Enh. Repository Contracts License Agreements, Nondisclosure Agreements, Merger Contracts, Misc. Agreements (user-defined)
    • User Defined Attribute support for Deliverables
    • Sync/Down/Upload: MS Word 2010 Certification
    • Contract Expert Performance Improvements
  • Sourcing
    • Add Requisition lines to a Draft Negotiation
    • Ability To Withdraw Responses Submitted On An RFI/RFQ
    • Track Supplier Amendment Acknowledgements
    • Staggered Awards on Split Negotiations
    • Import of Price Breaks and Tiers via Excel
    • Negative Cost Factor Support
    • New API’s to Create RFIs, RFQs, Auctions and Negotiations
    • Online Discussions Attachments and Messaging
    • Terms and Conditions Display Controls
    • Lot Pricing Summaries (also by Lot Line)
  • Spend Classification
    • Reclassify Historical Data
    • Asynchronous Classified Batch Approval Flows
    • Enhanced Training Data Upload (up to 100MB)
    • Enhanced Knowledge Base Tracking Capability
    • Improvements in Analyzing KPI Batches with Excel Export
    • Classification Code Reset by Ranges

Human Capital Management - Streamlining, Efficiency

  • Cross-Module Enhancements
    • 30 Country Localization Support
    • Managerial Task Checklists
    • Bulk Synchronization -> Incremental Sync API
    • Future-Dated Terminations, Reversals, Rehires
  • Payroll
    • Purge Process Events
    • Quick Retro Pay (single assignment)
    • Self-Service Element Entry (w/WF approvals)
  • Human Resources
    • Streamlined Re-hire Processes
    • Self-Service Internal Hire Support