Projects:Warehouse picking/Extension Points Functional Specification
![]() | Important Note: Warehouse picking functionality is discontinued and unsupported. All supported Warehouse functionality is included now in Advanced Warehouse Operations modules. |
Contents |
Functional specifications
Overview
The aim of these functional specifications is to describe how to extend the Openbravo ERP Sales process [1] and specifically the shipment flow to support picking and packaging. In Openbravo ERP Goods Shipments are created automatically by processes like "Create Shipments from Orders", "Generate Shipments", or when completing Point of Sales Orders or Warehouse Orders. It is required to represent in the Goods Shipment document that the material needs to be shipped and therefore the material is shipped.
Scope
Support of basic picking and packaging functionality. Manage Goods Shipment documents pending to deliver an delivered based on the document status. Goods shipment documents fields to describe the delivery status of the document and each of its lines. And reports related to the delivery status of Goods Shipment documents and delivery performance.
Design considerations
The extension of the shipment functionality will be based on the Openbravo ERP Sales functionality. It will be based on Goods Shipment documents and will use the current current document status behavior: Draft for not shipped documents and Completed for shipped documents. All the extended functionality for the Goods Shipment flow will be created with a new module that will use the new Extension Points that needs to be created in the core Shipment flow to allow to extend this functionality.
Functional Requirements
Business process definition
Shipment transactions
- Create shipments from Orders
- Generate shipments
- Create POS Orders / Warehouse orders
- Process pending shipments
Shipment analysis
- Pending Shipments report
- Delivery Performance chart
User stories
John is a sales manager. He creates sales orders in the system after he sells goods to customers. He also reviews shipments to customers to verify whether shipments are delivered on time or not.
- First he creates the sales order for the customer using the core functionality.
- When the Goods Shipment document is created for whatever method (The order is a POS order, he runs the Create Shipment from Order process, etc), this Goods Shipment document is created in draft status with a due date and with the lines marked as not ready for delivery.
- To review pending shipments from his customers he can search in the Goods Shipment window by documents pending to be delivered, by due date etc. And for pending shipments he can go to the shipments lines and verify the lines ready and not ready for delivery.
Justin is the warehouse manager. He is the responsible to manage Goods Shipment documents pending for delivery, and to deliver Goods Shipment that are ready.
- First he checks all the Goods Shipments that are pending sorted by due date.
- He checks pending shipment with all the lines ready, and process the delivery and set as completed the Goods Shipment document. The application raises an error if Justin by mistake tries to complete a Goods Shipment if any of his lines is not marked as ready.
- Alerts are raised to Justin for all pending shipments that are over the due date.
Martin is the general manager of the company. He is the responsible of reviewing the customer satisfaction indicators related to the delivery date. To prepare his analysis he executes the following reports.
- Pending Shipments Report, with a detailed information about the shipments and product quantities pending to be delivered grouped by due date.
- Delivery Performance Chart, with a detailed information about the ratio of shipments delivered on time vs not delivered on time.
Functional requirements based on business processes
Transaction requirements
Num | Requirement | Importance | Status |
---|---|---|---|
TR-01 | Shipments created in processes like Create Shipments from orders, Generate Shipments, or when creating a POS order or a warehouse order are created in Draft status | Must have | |
TR-02 | Shipments documents have fields to indicate the due date and delivery information. | Must have | |
TR-03 | Shipment lines have fields to indicate the status of the line for delivery, ready or not ready. The parent document has also a summary field to indicate whether all the lines are ready to deliver or not. | Must have | |
TR-04 | The process that complete Goods Shipment verifies that all lines are ready to deliver, otherwise an error is raised. | Must have | |
TR-05 | There is an alert raised for all shipments that are over its due date. | Must have |
Analysis requirements
Num | Requirement | Importance | Status |
---|---|---|---|
AN-01 | Pending Shipments report. Filtered by dates period, customer, due date, warehouse and project. Grouped by due date and showing the fields customer, shipment no, date, due date, delivery information, article quantity, unit, ready/ not ready. | Must have | |
AN-02 | Delivery Performance Chart. Filtered by dates period, customer, due date, warehouse and project. List in the X axis the dates and in the Y axis the number of shipments delivered on time, delivered not on time and the ratio between both numbers. | Must have |
Non-Functional Requirements
Security requirements
Num | Requirement | Importance | Status |
---|---|---|---|
SE-01 | There will be different access levels:
| Must have |
Technical specifications
Introduction
The aim of these technical specifications is to explain how to proceed in order to create the Picking and Packaging module for Openbravo ERP and how to modify the core Shipment flow to support the functionalities required by this module.
Technical environment definition
Extension Points
Extension points are a core enhancement of Openbravo ERP created to allow modules of Openbravo ERP to modify and extend the core business logic existing in the PL/SQL procedures. [2]
For the Picking and Packaging module it is required to create new Extension Points in the Shipment flow in the following steps:
- In processes that creates and cancels Goods Shipment documents. This is done in the PL/SQL functions: M_INOUT_CREATE and M_INOUT_CANCEL. This extension point has to be able to deal with new new fields of Goods Shipment and also has to be able to decide whether the function M_INOUT_POST has to be called or not. i.e. whether the Goods Shipment document has to be processed or not.
- In the function that processes Goods Shipment documents, the PL/SQL function M_INOUT_POST, has to be created a new Extension Point to verify whether the document can be processed or not, for example depending if the shipment is ready or not.
Picking and Packaging module
Openbravo ERP modules are pieces of additional functionality that can be deployed optionally and independently on top of Openbravo ERP [3]. Openbravo also offers the possibilty to distribute modules using his platform and his marketplace [4]. For the Picking and Packaging module it is required to create a new module that includes the following functionalities:
- New fields for Goods Shipment and Goods Shipment lines. Due date, delivery information and a summary field that describes if all lines are ready for delivery or not for Goods Shipment and an status field if it is ready or not for Goods Shipment lines
- New process that updates the summary field that describes if all the lines of a Goods Shipment document are ready or not to deliver.
- New PL/SQL function linked to the M_INOUT_CREATE extension point that sets the due date field of the Goods Shipment document and returns that the document must be in Draft status and does not have to be processed.
- New PL/SQL function linked to the M_INOUT_POST extension point that raises an error if the Goods Shipment document is not ready for delivery.
- New alert raised for all shipments that are over its due date.
- New Pending Shipments report
- New Delivery Performance chart.
Project plan: main development steps
Extension Points
Num | Task | Work Effort estimation | Status |
---|---|---|---|
EP-01 | Extension point in M_INOUT_CREATE and M_INOUT_CANCEL before each call to the function M_INOUT_POST with the posibility to cancel the invocation to this function | 2 days | |
EP-02 | Extension point in M_INOUT_POST to check if the process can continue of in an error has to be raised | 2 days |
Picking and Packaging module
Num | Task | Work Effort estimation | Status |
---|---|---|---|
MO-01 | New fields for Goods Shipment header | 1 day | |
MO-02 | New fields for Goods Shipment lines | 1 day | |
MO-03 | Process to update the Goods Shipment status field status based on the status of all the lines | 1 day | |
MO-04 | New PL/SQL function linked to the M_INOUT_CREATE extension point to set the due date and set the document status as Draft | 2 days | |
MO-05 | New PL/SQL function linked to the M_INOUT_POST extension point to check whether the Goods Shipment can be processed or not | 2 days | |
MO-06 | Alert raised for all shipments that are over its due date. | 1 day | |
MO-07 | Pending Shipments report | 3 days | |
MO-08 | Delivery Performance chart | 3 days |
Available Extension points
Within this project 3 extension points are included.
M_Inout_Post - Finish_Process Extension Point
This extension point is called at the end of the M_Inout_Post function, the function that completes shipments
- Parameters:
- Record_ID (p_String column of AD_EP_Instance_Para). c_inout_id of the shipment that is being processed.
- DocAction (p_String). Action performed during the order process.
- User (p_String). AD_User_Id who has launched the process.
- Message (p_Text). Variable to set a message if needed.
- Result (p_Number). Integer to set the result of the process (1 success, 0 error, 2 warning)
Message and Result have to be retrieved after the procedures have been launched as they might be changed by those procedures to set warnings and messages to the user.
M_Inout_Create - Calling Post Process
This extension point is called inside the M_Inout_Create function, the function that creates shipments from orders. It allows depending on the result returned to call the function to complete the shipment created or not and leave the shipment in draft status.
- Parameters:
- Record_ID (p_String column of AD_EP_Instance_Para). c_invoice_id of the invoice that is being processed.
- DocAction (p_String). Action performed during the order process.
- User (p_String). AD_User_Id who has launched the process.
- Result (p_Number). Integer to set the result of the process (NULL, execute the shipment complete process. Other value, do not execute the shipment complete process)
M_Inout_Cancel - Calling Post Process
This extension point is called inside the M_Inout_Cancel function, the function that cancels shipments from orders. It allows depending on the result returned to call the function to complete the shipment created or not and leave the shipment in draft status.
- Parameters:
- Record_ID (p_String column of AD_EP_Instance_Para). c_invoice_id of the invoice that is being processed.
- DocAction (p_String). Action performed during the order process.
- User (p_String). AD_User_Id who has launched the process.
- Result (p_Number). Integer to set the result of the process (NULL, execute the shipment complete process. Other value, do not execute the shipment complete process)