Powered by Blogger.

Monday, October 9, 2017

Tag: , , , , ,

Oracle Retail Price Management (RPM) – Frequently Asked Questions!

Hello Oracle Retail Fans. In this article, I’m going to list down some the frequently asked questions about RPM from various sources. Feel free to add if you have any more. I’ll keep on adding to this article, as and when I come across anything new. Please do let me know if you have any questions for comments.

Why is there no conflict checking between Price Change and Clearance?
No conflict checking is done between the Retail Price Change and the Clearance because Clearance always takes precedence over the Retail Price Change. If a retail price changes halfway through an active clearance, the clearance price continues to be the active price, but the new permanent price will be activated when the clearance resets. In essence, there really is no "strict" overlap between Clearance and Retail Price Change since the system holds the retail price change until the retail price for the item is reset.

How to end a Clearance Event that may not have a Reset Date or to end a Clearance Event earlier than planned?
To end a Clearance event that may not have a Reset Date or to end a clearance earlier than planned (i.e. already has a Reset Date), put the Clearance back to Worksheet status and enter/change the Reset Date regardless if the Clearance is already in effect or at least one Clearance Markdown has been downloaded to the Point of Sale (POS).

After you have approved and downloaded a clearance event, set it back to Worksheet status and modify the Reset Date. You can modify clearance informat

Why does a Clearance Event not have an "Extracted" status unlike a Retail Price Change?
Clearance does not have an "Extracted" status but it does have "Downloaded" status for each Clearance Event Detail. When we define Price Change, it is for a specific effective date (and it only has one effective date). That would mean, all item-location involved on this price change will have this new price on that effective date. Whereas with Clearance, each clearance event details have its own effective date. If Price/Cost Change has already been extracted, it cannot be put back in Worksheet status. Same

How To Create A Sample Worksheet In RPM?
1.     Create Items in RMS:
  - Create several “Regular” type items in RMS
  -Add the Supplier and Retail By Zone information to the items
  -Assign several locations to the items through the location link on the Item Maintenance Window
  -Be sure to make these items sellable and orderable
  -Approve the items created in RMS
2.     Set up Competitive Pricing in RMS:
This is required for a competitive strategy only.  If competitor pricing does not exist, then items in a worksheet generated by a competitive strategy will not have a proposed retail.
- Create and save an item list using some of the items created above
- Close the item list windows
- Enter the item list search container and select Use from the Action Drop Down List Box
- Select Create Competitive Shop List from the Option Menu
- Enter a competitor record with a Shop Date=Vdate
- Save and close the item list containers
- Create and Save a Regular Price Type Competitive Price Entry for the item list
3.     Create a Calendar:
 - Create a calendar with a Start Date = vdate + 1.
 - Select a calendar End Date where End Date > vdate + 1
 - Set the Review Period Duration = 1
 - Set the Days between Review Periods = 0
4.     Create a Candidate Rule:
 - This is required in order to generate a worksheet from a clearance strategy
 - Create a candidate rule that will be met by the items created above in RMS, such as a
   department candidate rule.  (Department=Item Department)
5.     Create a Zone Group/Zone:
 - Create a Zone Group with 2 zones
 - Add locations to each of the zones
 - Be sure to select locations where the items created above in RMS are ranged to (exist at).
6.     Create a Pricing Strategy:
Area Differential:
 
- Create an area differential strategy with one of the zones created above
  - Select the department of the items created above
  - Select the calendar created above
  - Add one secondary area for the second zone in the zone group created above
  - Save and close the strategy
  - Create another strategy with the same department and primary zone used in the area differential. 
The strategy can be any type, except for another Area Differential. Note that two worksheets will be generated for this strategy type, one for the primary and one for the secondary area
Clearance:
 
- Create a Clearance strategy with one of the zones created above
  - Select the department of the items created above
  - Select the calendar created above
  - Add a markdown
  - In order for a worksheet to be generated, at least one item in the clearance strategy
    department needs to meet an existing inclusion candidate rule.
  - In order for an item to have a proposed retail it must meet an inclusion candidate rule
Competitive:
 
- Create a Competitive strategy with one of the zones created above
  - Select the department of the items created above
  - Select the calendar created above
  - Select a primary competitor and store
In order for the item to have a proposed retail it must have a competitor retail in RMS for the primary competitor and the item retail cannot equal the competitor retail or fall inside the acceptable range
Margin:
 
- Create a Maintain Margin strategy with one of the zones created above
  - Select the department of the items created above
  - Select the calendar created above
  - Add a margin record
In order for an item to have a proposed retail it must fall outside the acceptable range if one exists, otherwise it must not be equal to the margin target
7.     Run Merchandise Extract:
  -Run Merchandise Extract and worksheets should be generated
8.     Set up Worksheet and Data Permissions:
 -If worksheets are in the database but not visible in RPM, data permissions need to be set up. To see whether you have the worksheet data populated for a department you can execute the query below:
    Select  *  from rpm_worksheet_status where dept=''
-Set up Department Permissions in RSM
9.     Reasons why a worksheet may not generated or items do not make it into the worksheet:
 - If no future cost records exist for the strategy merchandise hierarchy, then no worksheet will be generated.
- If no future retail records for the strategy merchandise hierarchy, then no worksheet will be generated.
- If all items in a strategy merchandise hierarchy meet an exclusion candidate rule, then no worksheet
  will be generated.
- If no items in the clearance strategy merchandise hierarchy meet an inclusion candidate rule, then no
  worksheet will be generated.
- If items in the strategy merchandise hierarchy do not exist at any of the locations in the strategy zone
   group/zone, then no worksheet will be generated.
- If an item’s Market Basket Code is not consistent across locations in a zone, it will be excluded from
   the worksheet.
- If an item’s Link Code is not consistent across locations in a zone, it will be excluded from the worksheet
- If an item does not have the same selling UOM in all locations in the zone, it will be excluded from the worksheet.
- If all Item/Locations that are part of a link are not included in the strategy merchandise hierarchy and
  zone group/zone, the item will be excluded from the worksheet.
- If an item is excluded in an Area Differential, it will not be included in the worksheet
- If linked item/locations have varying UOM’s, they will be excluded from the worksheet
- If the RPM_FURURE_RETAIL.SELLING_RETAIL and RPM_FUTURE_COST.PRICING_COST or
  RPM_FUTURE_COST.BASE_COST fields are 0.
- If there is a row in the rpm_strategy table that does not have a corresponding row in one of the strategy tables (rpm_strategy_margin, rpm_strategy_competitive or rpm_strategy_clearance).

Threshold promotions can be defined as a compound or exclusive promotion. Definition states that a compound promotion can be applied with other promotions. However an item can not have overlapped promotions. Explain how compound promotions can be applied with other promotions with an example.
It is correct that threshold promotions can be defined as exclusive or compound. The Compound promotion can be applied with other promotions when the promotion number is same i.e for a single promotion a compound promotion can exist along with exclusive promotion. It is also correct that there can be only 1 promotion for an item/location during a certain period. But the above case where the compound promotion exists on an exclusive promotion doesn't mean that there are 2 promotion numbers. The promotion number is the same for both. An item can exist on more than one threshold within the same promotion (if the thresholds are compound) but a promotion will always be in conflict if another promotion exists in approved status with the same item/location combination. The system doesn't allow multiple promotions to exist for the same item/location/date. But an item on a threshold promotion can be on multiple thresholds. If a threshold is created within a promotion and the Compound Apply Type is selected then items assigned to this threshold in this promotion can also be assigned to other thresholds in the same promotion (the Apply Type for the other thresholds would also have to be compound). Selecting compound does not dictate how the discounts will be calculated when multiple thresholds exists it simply indicates that the item (for a given location within this promotion) can exist on more than one threshold.
An example might help to illustrate:
Item A is on a threshold promotion at location 123 on a specific date:
Item is added to two thresholds on a promotion which are both marked as compound:
Threshold #1
Level 2-3 units 10% off
Level 4-5 units 15% off
Level 6+ units 20% off
Threshold #2
Level 3-4 units $5 off
Level 5+ units $10 off
The system would allow the item to be added to both threshold if both were marked as compound and the download would send both thresholds to the Point of Sale (POS) system. It would be up to the POS system to determine how to apply both of these threshold for the sale of an item. If a customer purchased say 4 units, the POS would need to determine whether it would apply the 15% off first, or the $5 off first in determining the ultimate retail for the 4 units.

Is the sales value in the sales upload (POSU) file including the discount value or the full selling value?
Sales Value includes the discount. An example might help to illustrate:

Buy item x = $10.00 and item y= $10.00 and get item z for free whose Regular Selling Price = $5.00.

In the POSU file, sale of item z will reflect as sale value= $0.00 and discount = $5.00


What values should be expected in sales value and discount value fields for a mix n match promotion on the sales upload file?
For a mix n match promotion total discount is applied to the get item. Get items should have zero sales value and the buy item should reflect the full selling price. 

Why is Retail Price Management (RPM) not allowing you to choose a location type as warehouse in the zone structure screen?
There is a system option in RPM, "RECOGNIZE_WH_AS_LOCATIONS", that needs to be set to 1 in order that warehouses can be displayed in the drop down list. Also, the zone group selected must not be a promotion zone group.
Make sure of the following points to allow this scenario:
1.     RPM_SYSTEM_OPTIONS.RECOGNIZE_WH_AS_LOCATIONS is set to 1.
2.     Zone group selected is not a promotion zone group.

When the customer assigns the primary price zone group to a newly created department in Retail Price Management (RPM) there is an option of defining the initial price markup % and type, this is not reflected in Retail Merchandising System (RMS). Why is this?
When creating a new department in RMS, provide the markup % in RMS, which is then inherited throughout the merchandise hierarchy. It is then possible to associate or not associate the merchandise hierarchy with a Prize Zone Group now.

While creating an item inside the new department, then add suppliers to the item but clicking on the "retail by zone" throws up a pop-up message to set the primary zone group in RPM.

In the RPM, go to zone structure, then primary zone group. You now have to associate the newly created department with a Primary Zone Group. And here, set the markup % in RPM for either retail or cost..

If the markup % is set in RPM and RMS, RPM wins. There is logic in RMS that requires a primary zone group to exist to populate the retail by zone screen which uses the markup % from RPM.

So, the markup % that is set in RPM does not get updated in RMS, but is certainly used to calculate
the initial retail price and it overrides the markup % set, if any in RMS.

To check the markup % set in RPM in back end, then query on the table 'rpm_merch_detail_def'.
What is the use of the ITEM_LOC.RPM_IND field and how is it handled by RMS ?
The ITEM_LOC.RPM_IND field is used by the RPM System to indicate whether the item/location
combination has been processed by RPM or not. When RMS creates a new item/location combination, the system will insert the ITEM_LOC.RPM_IND with a value of 'N' which means that RPM has not yet processed this record.

Once the Merchandise Extract batch program from the RPM Application is run, the batch will pick up this record and create the Worksheet in the RPM System. Once the Worksheet is created, the RPM System will then update the ITEM_LOC.RPM_IND to Y. The value of this column will never be updated again once it has been processed by RPM.
The value of ITEM_LOC.RPM_IND does not mean whether the new item location record has been
sent to RPM or not, rather it is used to indicate whether the new item/location record has been
processed by RPM or not.
What is the purpose of NewItemLocationBatch and why was it added?
The NewItemLocationBatch was added to replace the Retail Integration Bus (RIB) subscription mechanism to improve performance . Clients who have performance issues with the API can use the newitemloc batch. If a client's performance testing has not shown any issues with performance on this API, they can continue to use the RIB API.

There is a new trigger on ITEM_LOC called RMS_TABLE_RPM_ITL_AIR that inserts new item/locations into RPM_STAGE_ITEM_LOC and the newItemLoc reads that table and inserts in RPM_FUTURE_RETAIL.
What parameters can/should be used when running NewItemLocBatch?
User executes batch application with shell script at Unix command line.
User provides username, password, staged status N (default) or E and (errorChunkSize) at the command line.

Possible valid statements are:
. newItemLocationBatch.sh batchUser superSecretPassword
. newItemLocationBatch.sh batchUser superSecretPassword N
. newItemLocationBatch.sh batchUser superSecretPassword E
. newItemLocationBatch.sh batchUser superSecretPassword E 50


Under what conditions will exclusions be created for promotions?
When the new item/loc try to inherit a future promotion and the new item/loc goes to negative retail then NIL will pull out an exclusion

Under what conditions will exclusions not be created?
When the new item/loc try to inherit a future promotion and the new item/loc goes to positive retail, no exclusion should be created.

What are the exact process steps taken by the NIL batch and when are the errors written in the RPM_STAGE_ITEM_LOC table?
1. User executes batch application with shell script at Unix command line
2. System authenticates username and password
3. System determines status to process
4. System reads batch control table for chunk size
5. System begins database transaction
6. System deletes rows from staged table (rpm_stage_item_loc), such that there are no
       a. duplicate item-loc combinations
       b. item-loc combinations which already exist on the future retail table
       c. non-transaction level items
       d. null selling unit retail or non-sellable items (what determines if an item is sellable?)
       e. null unit of measure (UOM) values
       f. warehouse locations if the system options indicate we should not treat them like stores
7. System deletes data from process table (rpm_stage_item_loc_clean) and event table (rpm_stage_item_loc_event)
8. System loads approved items with a status of “N” (or E depending on command line) from the staged table into the process table
9. System ends database transaction
10. System spins off threads. Each thread is given a number coinciding with the chunk numbers in the process table
11. System begins database transaction
12. System using the chunk number creates seed rows in the future retail table.
        a. The action date of the seed record is derived from the system option: Future Retail Seed Days Before. The action date value is set as vdate MINUS rpm_system_options.fut_ret_seed_days_before
        b. The reason for making the action date on the seed record configurable is so we can include active promotions when ranging item-locations. The client must fill this value so as to insure all seed records precede all active promotions.
If this is not the case a NO_DATA_FOUND exception is thrown by the conflict check PL/SQL. A NO_DATA_FOUND exception and a status of “E” is written to the rpm_stage_item_loc table for each item-location combination in the chunk_number
From which Retail Price Management (RPM) tables does the Price Inquiry screen retrieve its data?
Price Inquiry Screen retrieves its data from 2 tables:
1. RPM_FUTURE_RETAIL: searches for future retail records of item/locations that satisfy the criteria
entered (please note that the date is also a criterion)

2. RPM_ZONE_FUTURE_RETAIL: If no specific location is entered, the search results should display
zone level future retail information of the items that satisfy the search criteria
What is the purpose of Price Inquiry screen? 
Price Inquiry screen was a new feature added in Retail Price Management (RPM) 11.0.4 release. It's purpose is to view the current price and future price of an item (on any given date) but not to find the price history of an item over a period of time.
If the user wants to know the price of an item over a period of time, please use the price history screen in the Retail Merchandising System (RMS) application.

Where do you find the Retrieve Item Price functionality in Oracle Retail Price Management (RPM)?
The Oracle Retail Price Management (RPM) user guide advises:
  "The Price Inquiry workspace allows you to look up the price of an item for a selected date and location."

The navigation to perform this function is:
    From Task Pad, select Price Inquiry > Retrieve Item Price.


Can a price change be achieved with the following applications in place?
Applications:
RSM, RSL, RIB(conflict checking queue rpmTaskQueue binding to RPM achieved during RPM install),
RPM (configured with no rib option)

Yes. With the above applications in place, price changes can be created/maintained.

Do we need Store Inventory Management (SIM) to be installed for price events to work?
SIM installation is totally optional , it's not related to price events

If you are using Retail Integration Bus (RIB) for price changes, is it mandatory to have the RIBforRPM application to be installed and configured?
Yes. If you are using RIB you will need to have RIBforRPM installed and configured

When PriceEventExecution batch is run, does the price change data go to POS_MODS table of Oracle Retail Management System (ORMS) to be picked up later by Oracle Stores Inventory Management (SIM) application to reflect the new prices in the stores?
When ORMS creates an item, the initial price is sent down via POS_MODs. After that point, no price data is sent from ORMS. All pricing events are published from ORPM over the Oracle Retail Integration Bus (ORIB) and do not touch POS_MODS.

ORIB messages are directly carrying the data to Store systems and hence do not need to depend on POS_MODS.
Explain the Asynchronous Process Conflict Checking In Retail Price Management (RPM)?
In asynchronous processing, conflict checking is done in RPM to ensure that rules are followed in order to avert potential pricing problems.

Examples of conflict checks include:
1.     Ensure that a given item/location will not have more than one (1) retail value assigned for a given date.
2.     Ensure that parameters of Regular Price Change, Clearance, and/or Promotion are not causing the retail value of the item/location to go below zero.

Currently, the conflict check process in RPM is a synchronous process. It can be kicked off by itself or as part of another action (e.g. approving a price change), but it always blocks the user while it runs. Asynchronous processing is a mechanism by which applications can run long running operations in the background.  We can enable/disable asynchronous process based on system options.

When conflict checking is done synchronously, the system performs conflict checks immediately when Conflict Check is clicked from the Price Change, Promotions, or Clearances workspaces. It also happens when state changes occur that require conflict check. The system then displays a pop-up dialog showing the conflicts whenever conflicts are found.

Conflict checking is always done synchronously in the following situations:
       Retail Service Layer (RSL) calls
       Retail Integration Bus (RIB) calls
       batches
       auto-generated price changes

When conflict checking is done asynchronously, the conflict check processing happens in a background task or when the system is not busy performing other tasks. The user who initiated the action receives an alert once conflict checking is done.

The Conflict Check Results workspace allows you to review the results of background conflict checking for worksheets, price changes, promotions, and clearances. An alert appears in the Conflict column of the worksheet, price change, promotion, or clearance maintenance pane when conflict checking is complete. The RPM User Guide shows you how to view the results of background conflict checking.

Conflict checking for location moves is expected to operate on extremely large volume of data. It is not acceptable for the user to have to wait for minutes to hours for processing of their request to complete. Thus, conflict checking for location moves is always done asynchronously.

Constraints will be performed asynchronously at the same time as the conflict check. When the user executes an action that kicks off a conflict check, the user will indicate whether they want constraints checked. If constraints are checked, they will be handled just like conflict check errors. There is no longer a need to perform constraint checks first.

Asynchronous Processing Flow
1.     The client requests the application server to perform a process on a business object or set of business objects.
2.     The server’s application service layer extracts information about the request (type of business object, identifying ID, and requested action).
3.     When RPM determines that a task is eligible for asynchronous processing:
1.     A JMS message is published to the queue that contains specific information about the task.
2.     A record is inserted into the TASK table. The task-specific information about the task is persisted as a Blob in the table. This task-specific information is a Java object that when read from the database is capable of calling an RPM application service to perform asynchronous processing and generate an alert when the processing is completed.
4.     As soon as a message arrives in the queue, the container triggers execution of the TaskMDB. TaskMDB is a message driven bean used to facilitate RPM’s asynchronous processing capability. Message Driven Beans acts as listeners to specified queues for messages.
5.     The task passes information to the application service layer.
6.     The application service layer performs a state transition on the requested business object (e.g., approving a particular price change) basing on the information passed by the task.
7.     The results of this transition (e.g., success or failure messages, conflict details) are recorded in the RPM_CONFLICT_CHECK_RESULT table.
8.     The application service inserts a record into the ALERT table.
9.     The client periodically polls the Alerts application service which looks for new alerts in the ALERTS table

What is the goal of Edit Workflow permission related to RPM?
In the Edit Workflow Permission we can choose a role and then select the Application in which
we want to set the permission for the role. Once we select the Application (ex RPM) the role is
given default permission to all the RPM screens. There are 2 multi grid views displayed one below another.
Second view reflects the existing permissions. Now, we can modify the permissions by checking/ un-checking the columns in the first view and also restrict the access by checking the 'No Access' column for the screen.

What is the goal of Edit data permission related to RPM?
In this screen we can select a Role and we can assign data permission related to the application. For example if a Role is having permission to RPM we can assign permissions to the particular departments and zone group to the role.

How are HIERARCHY_PERMISSIONS and ROLE_HIERARCHY_PERMISSIONS populated related to the RPM application?
When we give permission to a particular department/zone group to a role two tables are updated.

HIERARCHY_PERMISSIONS: This table contains a row for each department/ zone group. A new record is populated in this table only once per department/ zone group when the permission is set to any role for the first time. Irrespective of number of roles there will be only maximum one record in this.

ROLE_HIERARCHY_PERMISSIONS: This is a child table of the above table. There will be a new record populated in this when permission is assigned for each role.

What is the 'rpm.tasksCM' NAMED PERMISSION used for in RPM?
'rpm.tasksCM' NAMED PERMISSION is the entry for the 'TASK' link in RPM task pad. This named permission should be link with a user role in ROLE_NAMED_PERMISSION table, so that the user can view the link and can access the functionality. For each and every link in RPM taskpad we have an entry in NAMED PERMISSION table which should be linked with ROLE_NAMED PERMISSION table for the user to access the link.

RSM permissions do not appear to apply to some screens in RPM. Why is that?
RSM permissions are only applied to PRICE EVENTS in RPM. Screens like Price Inquiry and Price Guide do not follow RSM security

Why is a newly created store not visible in the location list of values (LOV) for price changes? You also can not see the newly created zone group in the zone LOV for price changes.
Since permissions are necessary for creating transactions but not when doing an inquiry, it is likely that the user does not have sufficient privileges to see the location.

Please check data permissions in Retail Security Manager (RSM):
1.     Sign on to RSM.
2.     Navigate to role administration, edit data permission.
3.     Click on the appropriate role, then click edit button.
4.     Click in the "edit data permissions for role" pane in the "data element" block, then scroll down and see if the zone is visible in the location hierarchy.
5.     If the zone is not visible it will need to be added.
You should have the application cycled after giving permissions.

Does Retail Service Layer(RSL) need to be installed separately for price events in Retail Price Management (RPM) to work?
In the latest 12.0.x patch levels RSLforRMS is only required by SIM. RPM does not require
RSLforRMS.

RPM contains an implementation of RSL. This one is called RSLforRPM. It is a part
of RPM and nothing extra needs to be done to set it up.

Retail Price Management (RPM) And Retail Security Manager (RSM) Security

General Security
       Each user is defined via the LDAP server.
       RPM defines security at the role level, so each user can be associated with one or more roles. (see USER_ROLE table).
       Each role can then be granted data permissions and named permissions.
       Security data will be maintained via the RSM application.

Named Permissions
      Named permissions allow granting of edit, view-only, or no access for each role to each functional area. Named permissions are defined via NAMED_PERMISSIONS, and are linked to a role via ROLE_NAMED_PERMISSION. The NAMED_PERMISSION table defines which actions apply to each permission. In general, create permissions are edit only.
        
  Maintain permissions can often grant view only permission, or view/edit permission.        ROLE_NAMED_PERMISSION defines which actions apply to the particular role for each permission. If a permission is View and is not Edit, when that functional area is displayed in the application, all fields, buttons will be view only. If a permission is edit, the functional area will allow modifications and saves.
        
     Special Actions (Submit, Approve, Emergency). Special actions are defined at the task pad entry level (Promotions), not per each action in the Action pad. Submit and Approve permission rules are different for each functional area that they apply to. In general, the Emergency permission allows the user to ignore the today plus price change processing days rule. Users with emergency permission can generally set these restricted dates to today or later.

Data Permissions
       Data permissions allow particular roles to see a restricted set of location hierarchy information (zone groups and zones) or a restricted set of hierarchy information (departments, classes, subclasses).
       Data permissions are defined via HIERARCHY_PERMISSION and HIERARCHY_TYPE, and are linked to a role via ROLE_HIERARCHY_PERMISSION

Retail Price Management (RPM) And Retail Service Layer (RSL) Calls
For real-time integration purposes, RPM has two implemented RSL interfaces, one for price inquiry and one for price event create, modify and delete.

Price inquiry simply looks up Retail (prices) for item, location, date combinations.
Price event create is a more complex process where the price events are created (along with their details) and then approved. Price event modify simply modifies existing price events, and finally delete removes the price events from RPM.
Event                                                     Payload                   Definition
PriceChange/Promotion/Clearance PrcChg                                           Create/Modify/Delete
Price Inquiry                                           PrcInqReq                              Price Inquiry Request
Price Inquiry                                           PrcInqDesc                             Price Inquiry Result


Message Headers    Detail Structures

Message Header                     Message Detail
PrcChg                                   PrcChgDtl
RegPrcChgDesc
                        RegPrcChgDtl
ClrPrcChgDesc             ClrPrcChgDtl
PrmPrcChgDesc                       PrmPrcChgDtl
RegPrcChgRef              RegPrcChgDtlRef
ClrPrcChgRef                ClrPrcChgDtlRef
PrmPrcChgRef              PrmPrcChgDtlRef
PrcInqReq                    PrcInqReqDtl
PrcInqDesc                   PrcInqDtl
How To Add New Retail Security Manager (RSM) Permissions To New Roles?

For example,  set up two separate administrators one to just access Retail Security Manager (RSM) and the other to just access Retail Price Management (RPM).
Similar to JAAS Permissions, permissions in Retail Security Manager (RSM) may contain associated actions. Permissions in RSM are defined in table NAMED_PERMISSION with each row (permission) having actions ("Edit", "View", "Approve", "Submit", "Emergency") that are either off or on (0 off, 1 on). If the given permission action is off (0) you cannot assign this permission AND action to a role (you can assign just the permission).
By default application, RSM seeds one permission in its database (rsm.*) that uses a wildcard. Also by default, one permission (rsm.application) is required to access all content in the RSM user interface. If a client wishes to secure access to individual parts of the RSM content (User Administration, Role Administration, Password Map), updates must be made to the RSM content model at conf/retek/content_model_rsm.xml in the RSM ear. Below you'll see a section of the default RSM content model...
...and below is an example of an updated RSM content model...
In addition, whatever permissions are added in the content model must be manually added to tables NAMED_PERMISSION and NAMED_PERMISSION_DSC (do not forget to add the corresponding description or the UI will not be able to display it). In the updated content model, the user must have access to the following permissions to execute all the RSM functionality:

rsm.application
rsm.useradministration
rsm.roleadministration
rsm.roleadministration.roleadmin
rsm.roleadministration.workflow
rsm.roleadministration.dataaccess
rsm.passwordmapping

Note: Having access to wildcard permission rsm.* is equivalent to having access to everything above. Having access to rsm.roleadministration.* is equivalent to having access to the three role administration permissions.

Why are RSM config files in "tmp" directory?
When running Retail Security Manager v 12.0 install.sh script, it places new configuration files in the following location:
/ssa/retail/rsm/appserverunix/rsm/application/rsm12/tmp/earcontents/afterconfig/conf
While this may appear odd, the configuration files actually being used by the RSM server do not reside in that temporary directory.
Here is an example from one of our test RSM 12 environments:

$ pwd
/u03/rsm12tst/rsmoas1/oc4j/j2ee/home
$ find . -name hibernate.cfg.xml
./applications/rsm12/conf/hibernate.cfg.xml
./rsm-staging/rsm/application/rsm12/template/hibernate.cfg.xml
./rsm-staging/rsm/application/rsm12/tmp/earcontents/beforeconfig/conf/hibernate.cfg.xml
./rsm-staging/rsm/application/rsm12/tmp/earcontents/afterconfig/conf/hibernate.cfg.xml
The file actually in use is the top one on this list (below the .../j2ee/home/applications path). The others are all related to the installation process. So the directory including the path "tmp/earcontents/afterconfig" is not the actual live directory for those configurations. That is exactly as it appears - a temporary directory.

Which TCP/IP ports does RSM12 use to communicate between client and server?
Only the listener port specified in "jndi_providers.xml."

Why do we have to bounce RSM when we edit "users_rsm.xml"?
When updating "users_rsm.xml", this does not impact the actual authentication through RSM until after RSM server is bounced. Do we have to bounce the RSM server in a production environment just to maintain users, such as adding users or changing passwords?
No. In production, it is presumed that a truly enterprise-level user repository would be implemented... namely, LDAP. The XML authentication scheme is built into RSM as a convenience to allow the Administrator and UAT team to setup and test the integration deployment and make sure everything works acceptably before increasing the complexity by also integrating with LDAP. The XML authentication scheme is not intended for production use.

So, when a new Retail Price Management (RPM) user is successfully added to the LDAP repository, neither RPM nor RSM server will need to be bounced?
That is correct.


About Nagesh Mishra

Nagesh Mishra - A Passionate Oracle Retail Certified Professional with more than 17 years of overall experience in IT industry and more than 15 years of domain expertise in Oracle Retail Applications. Worked extensively in diversified fields of Product Implementation, Business Consulting, Pre-Sales, Application Software Development, Maintenance and Support and Re-Engineering Oracle Retail projects.

0 comments :