Configuring Reason Codes

Reason codes are used as identifiers for performing certain transactions, such as modifying the quantity of an LPN. Reason codes must be added at the Parent company level.

  1. Go to the “Reason Codes” screen.
  2. Click the Create button.
  3. Populate the code and description.
  4. Click “Save”.

Reason Code Parameters

You may also configure reason codes that are required for certain transactions. These parameters are located in the “Company Parameters” screen.

  • CYCLE_COUNT_REASON_CODE: Defines the reason code for performing a cycle count.
  • DFLT_BATCH_EXP_ADJ_REASON_CODE: Defines the reason code for modifying a container’s batch expiry date.
  • SHORT_REASON_CODE: Defines the reason code for performing a short pick.

Configure Reason Code for RF Change LPN SKU Transactions

When you are managing inventory via Mobile Change LPN SKU (rf.inbound.cwrfchangeskulpn) transaction, the system captures the reason code. The reason code information mentioned within the Change LPN SKU is recorded in the “IHT- 17 Inventory Adjusted post verification” Inventory History Transaction.

To configure the system to capture Reason Codes in the Mobile Change LPN SKU , do the following:

  1. Go to the Mobile Change LPN SKU (rf.inbound.cwrfchangeskulpn) module.
  2. Configure the “prompt-for-reason-code” parameter to “Yes”.

    This enables the system to prompt for a reason code while performing the Change LPN SKU.

    Note: By default, the “prompt-for-reason-code” is set as a blank. If the “prompt-for-reason-code” is set as a blank or “No”, the system will not prompt for a reason code.
  3. To auto populate a reason code in the IHT -17, set the “default-reason-code” parameter with a valid reason code value.
    Note: If“default-reason-code” parameter is not configured, then the system behavior is as follows:
    • prompt-for-reason-code parameter is set to Yes/No
    • IHT-17 record
    • Yes
    • If you add a reason code in the RF Change LPN SKU transaction’s reason code prompt, then the system generates the IHT-17 record with the input reason code.
    • No
    • IHT-17 record doesn’t populate a reason code.

Enable/Disable Reason Codes

There are instances where all the reason codes configured in the Reason Code screen may not be used, so the user will need the ability to enable/disable the reason codes that are being used or not used, so that the list of reason codes will have codes which are currently in use.

In some cases, not all the reason codes configured in the Reason Code screen are needed. You may now enable the codes you use while disabling those you do not. This ensures that users only see a list of reason codes that are relevant to your warehouse activities.

In the Reason Code UI, you can use the “Enable Reason Codes” flag to edit, enable, and disable reason codes. You can also search for reason codes that do and do not have reason codes enabled. This will help you to better identify and optimize the reason codes you are using most frequently.

Enhanced Reason Code Management

You can assign stock adjustment reason codes to specific user groups and transaction categories, for example, Finance teams, giving them exclusive codes for their functions and preventing other teams from using them. This granularity improves control and data integrity, reduces audit risks and inconsistencies in stock records, and streamlines compliance by ensuring all adjustments are accurately tracked and audited.

To support Reason Code Assignment to Groups, child screens are made available in the Reason Code View UI on the REDWOOD. To access these screens, you need to click following 3 buttons available in the More option:

  • Assign To Groups: Allows assignment of user groups to each reason code
  • Assign to Categories: Allows assignment of categories to each reason code
  • Reason Code Literals: Displays reason codes with supported translation.

    Reason Code Authorization

    Note:
    • By default, these buttons are disabled. You need to select one or more records to enable the button and access the screen.
    • These buttons are permission controlled and requires “Reason Code / Edit Reason Code" to be enabled for non admin user.
    • These UI screens have following fields:

    Screens

    UI Screens Fields in Each screen
    Assign to group
    • Reason Code: Lists the Reason code.
    • Reason Code Description: List of selected Reason code description.
    • Group: List of all User groups configured in the logged in Company. In a Parent company, lists all the groups of the Child companies as well.
    Assign to Categories
    • Reason Code: Lists the Reason code.
    • Reason Code Description: List of selected Reason code description.
    • Category: List of all Categories.
    Reason Code Literals
    • Reason Code Description: List of selected Reason code description.
    • Language Code: List of all the supported language codes
    • Translated Reason Code: Enter the Translated Reason Code (max 10 character)
    • Translated Reason Code Description: The Translated Reason Code Description (max 75 character)

To apply the reason code authorization, do the following:

  1. Launch Redwood Mobile Reason Code Transaction
  2. Select the one or multiple record.
  3. Click More Action (…) button. The Assign to Group and Assign to Category are enabled.
  4. Click your desired button and the child screen opens.
  5. Perform CRUD operations.
    Note:
    • To support reason code auth by categories, we have defined categories for all Mobile transactions(can be viewed in modules UI) and defined categories for all POST APIS ( can be viewed in view only UI ApiCategoryView).
    • The GET API is extended to support retrieving list of assigned groups to Reason code(s), categories assigned to Reason code(s), or query list of api_category or Reason Code Literals. For more information, refer to WMS REST API Guide

Reason Code Authorization Logic

The reason code authorization feature enables you provide the reason code to specific groups and/or categories, enhancing security and control. This update ensures that reason codes are only available for relevant applications (UI and Mobile), transaction and thus streamlining user experience.

Example: UI Transaction Mobile Scenarios

If a reason code is assigned to a specific group and/or category, the system allows its use only for that group and/or for screens belonging to the specific category.

For example, let’s say you have the following reason code configuration.
Note: This logic applies for Mobile transaction scenarios as well.

Reason Code Authorization Transaction Logic

Case 1: If User1 of Group1 cancels an OB Order via OrderHdrView UI (Of 'Wave Management' category ), then, the Reason code drop-down list displays only - RC2, RC3, RC6, & RC7.

Case 2: If User2 of Group2 cancels an OB Order via OrderHdrView UI (Of 'Wave Management' category), then, the Reason code drop-down list displays only - RC4, RC6, & RC7.

Case 3: If User1 of Group1 modifies the LPN Quantity via IbContainerView UI (Of 'Inventory Management' category), then, the Reason code drop-down list displays only - RC1, RC2, RC3, RC5, & RC7.
Note: If a user is assigned to multiple groups, the Reason code Authorization Logic is validated against the logged-in view/group.

Reason Code Authorization

When Reason code is prompted, the system displays only active reason codes that are valid for the logged-in user group and transaction category in the reason code drop-down list.

The reason code authorization logic and the prompt behaviour is now applicable for UI/ Mobile screen, and APIs flows. On passing the reason code, the displayed RC or the scanned value is processed through additional RC Auth Logic along with existing validations.
Note: The system support Reason Code Auth Logic for GDD & Reconciliation Reason code.

Reason Code Change History UI

The Reason Code Change History UI displays more granular level of information to capture user activity performed on the Reason Code View and all child screens:

  • Current Value: Displays the new value.
  • Last Value: Displays the previous or old value.
  • Entity: Displays the Entity (REASONCODE, REASONCODEGROUP, REASONCODECATEGORY, and REASONCODELITERALS) in which the value for the selected record is changed when performing CRUD operations.
    Note: When you run any CRUD actions, the system will capture multiple records per actions with last and current values populated. For example, when you perform CREATE operation, the system will write 1 record per field that is populated. Similarly, for Update and Delete operations, the system will write 1 record per field that is updated or deleted.