Tag Archives: MSCA Label Printing

WMS Receipt Label Print flow

8 Jan

WMS Receipt Label Print flow

  1. Once Receiving transaction saved, it processes the transaction and inserts the data into rcv_shipment_headers, rcv_transactions.
  2. Once transaction completed in the same flow, inv_rcv_integration_apis.complete_lpn_group calls inv_label.print_label_wrap
  3. inv_label.print_label_wrap generates the detailed XML and publishes in label history table
  4. Once label history table populated with all data, inv_label.print_label_wrap calls INV_PRINT_REQUEST.SYNC_PRINT_REQUEST to print the label based on print mode and printers from profiles of either user or responsibility.

    To get the label print work below basic setups need to be there

    1. Responsibility or user which does the transaction needs to be assigned to the Receipt business flow with required label format(material or lpn or serial, etc)
    2. For each label type, there should be a default label format
    3. If you want to have specific labels printed for different conditions then specific label format rules need to be defined in the system.

    Enabling & Disabling Concurrent Program Parameter Dynamically

    20 Mar

    Enabling and disabling a parameter (for taking a valid date) in a concurrent program depending on another parameter

    Let’s do this with one example.
    There is a concurrent program named XXX Invoice Generation which has 2 parameters
    Document Type (Others & Sun Trns) and Date
    Date field should be enabled only when the Document Type is Sub Trns or else it should be disabled. Also when the Date parameter is enabled, it should accept only dates

    So here we have 2 requirements

    1. Enable and Disable the Date parameter based on the value in Document Type parameter
    2. Accept only valid dates in Date parameter

    So actually to achieve the enable and disable of the Date parameter, we need to have a dummy parameter created which will not be displayed and the same should not be used in the code present in background.

    So there will be 3 parameters in the concurrent program

    Document Type:

    Here in this example the parameter is created as Type and prompt as Document Type which is attached to a value set TEST_TYPE which is of type independent and has the values “Others” and “Sub Trns”.

    Dummy1:

    This is the Dummy parameter which is created to control the enabling disabling of the Date parameter.
    This parameter is attached to a valueset DUMMY1 which is of type independent and has the values “Y”.

    Also set default value to populate Y when the Document Type is Sub Trns else NULL
    select decode(:$FLEX$.Type,’Sub Trns’,’Y’, null) from dual
    So when Document Type is “Sub Trns”, Dummy1 value will be Y or else NULL

    Date:

    This parameter will behave based on the values in the Dummy1 Parameter

    So to achieve this, we need to use a table type valueset where we need to put the validation for validating with Dummy1 parameter value.

    So as per the requirement when Document Type is “Sub Trns”, then Date should be enabled which means when Dummy1 value is Y.

    Using above setup enabling and disabling of the Date parameter can be achieved.

    But we have another requirement is to validate the values entered in Date parameter as a valid date or not.
    Normally this could have been validated using a valueset FND_STANDARD_DATE but that is of Validation Type None and we cannot have the enabling and disabling functionality if we use this.
    So technically to achieve this, we need to tweek the requirement little bit.

    We cannot have a plain valueset which will simply validate whether it’s a valid date or not. Instead, as we are using a table type valueset to trigger the enabling and siabling of the parameter, we have to create and use a view which will hold dates for certain period like in this example, last 6 months and next 6 months date. And pull the dates from the view in the valueset.

    So when user enters a date, it will validate with the list of values for date between last and next 6 months and allow to proceed further.

    So mentioning below the view created for the same


    create or replace view system_date_six_months as
    (SELECT (TO_DATE (SYSDATE180 + LEVEL, ‘DD-MON-RRRR’)) date_range
               , (TO_CHAR (SYSDATE180 + LEVEL, ‘Month, DD RRRR’)) date_word

          FROM DUAL CONNECT BY LEVEL <= 360)

    Update on achieving the second requirement for validating entered value as a valid date or not in Date parameter.

    Normal date condition can be also achieved with valueset type as special and with Validate condition as

    FND PLSQL “BEGIN
    IF ‘AND :$FLEX$.Dummy1’ ‘Y’ THEN
    NULL;
    END IF;
    END;”

    WMS Label Format Setup and Demo

    6 Aug

    Labels are an integral part of WMS functionalities.
    This will help in easy transaction, clear tracking and using this transactions can be automated.
    Oracle provides different types of labels to setup as per your business transactions.
    Supplier labeling speeds-up the receiving process by enabling bar code scanning of inbound purchase orders, that results in less receipt processing time, immediate recognition of available materials, and higher receiving accuracy.

    Labels can be customized as per customer needs to cpmly with specific business or govt compliances with fields and barcodes.
    Even you can print customized documents as labels in case of requirement using label printing api.
    Below is the step wise setup with an example for clear understanding

    Create an Item

    Navigation:
    Inventory Super User -> Inventory -> Items -> Master Items

    Assign Items to the organization

    Tools -> Organization Assignments

    Define Label Format

    You can use oracle provided standard Labels or you can customize as per your business need

    Warehouse Manager -> Setup -> Warehouse Configuration -> Printers & Devices -> Define Label Format

    Select label type and entity type, find seeded label format and click on Label Fields and variables to check visible fields. You can define your custom format and select required fields.

    Assign Label Format to Business Flow

    Setup -> Warehouse Configuration -> Printers & Devices -> Assign Label Format to Business Flow

    *Drill down business flow and select Miscellaneous / Alias Receipt. Assign label type at user level

    Create Label Format Rule

    Setup -> Warehouse Configuration -> Rules -> Warehouse Execution -> Rules

    *Create a new Label format rule to satisfy the business condition
    Then run Generate All Rule concurrent program

    Do A transaction to understand how it works

    Do a Misc Receipt Transaction using MSCA 

    Check the generated Labels

    Navigate to

    Warehouse manager -> Inquiry -> View Label Requests

    Query by giving your user id or any such specific parameter in the form and you will be able to see the label, its status with details and the XML format of the label.

    This labels can be printed in all types of label printers provided by many different vendors like Zebra, etc.

    Label Printing in MSCA/WMS

    30 Oct

    Label Printing in MSCA/WMS

    Labels

    Either we can use the existing labels or we can design new labels

    Label Types:

    There are different label types depending on the different business and requirement with data elements.

    Label Format:

    A single design of a label that may include fixed data (such as field prompts) and variable data (such as Part Number). A Label Format is associated to a Label Type. It includes a subset of the available data elements from a particular Label Type. A label type can have multiple label formats, however each Label Format belongs to only one label type. Label Formats are registered within Oracle Warehouse Management after you create the label design in the third party software package.
    Either you can use the seeded label format or you can design your own label format
    We can customize the label as per our requirement with required and customized fields

    Printing Modes

    Asynchronous:

    An integration mode between Oracle Warehouse Management and the third party software supplier that is handled through dropping an XML file into a watched directory. When using this mode, Oracle Warehouse Management has no knowledge of the status of the print request after creation of the XML file.

    Synchronous:

    Generic:

    A real-time integration mode between Oracle Warehouse Management and the third party software vendor that is handled through a PL/SQL API. When using this mode, the third party supplier is able to return success or failure messages regarding the status of the label print request. Oracle Warehouse Management stores those messages in the label print history so label printing problems can be easily identified and diagnosed.

    TCP/IP:

    A real-time integration mode between Oracle Warehouse Management and the 3rd Party software vendor that is handled through a standard Ethernet TCP/IP connection. When using this mode, Oracle ensures that the printer or print server is listening to the IP and port and has successfully received the message, but no knowledge of the detailed status of the print request beyond acceptance of the XML message is known by Oracle Warehouse Management.
    Example Printer vendors like Zebra, Intermec, Cognitive Solutions, Datamax, Toshiba TEC, Printronix and Sato

    Printer

    ·        Define the printer details in Oracle system (Sysadmin) with proper styles and drivers and with unique name

    ·         Assign IP and Port to printers

    Assigning Label Types to Business Flow

    Business Flow: An identifiable business process that occurs as part of material handling within Oracle Warehouse Management. Oracle Warehouse Management recognizes a pre-determined list of Business Flows you can set up to include label printing as part of the transaction processing.

    Defining Label Format Rules

    Creating label format rules is an optional step. Some implementations may require only a single label format for each label type. If this is the case, the system picks the default label format for each type. The system also picks the default if there are no applicable rules. If the implementation requires more than one label format for a label type label format rules are necessary.

    Assigning Printer to the Required Level

    Printers can be assigned to Site level, responsibility level, user level.