COBI.ppc Overview
-
COBI.ppc is a Production Process Control solution aka Manufacturing Execution System (MES) for SAP Business One, offered mainly in the form of an Android App.
It is similar to and based on COBI.wms, but specialized for complex production workflows.Setup
The following UDTs and UDFs are used by COBI.ppc.
IMPORTANT: All tables should be of type ''No object with auto-increment''.
Attributes
In COBI.ppc we use the term "attributes" to refer to information about production orders that will be shown to the user. These attributes can come from a number of sources (see ''Origin'') and can be shown in the production overview screen, the production order details/execution screen, and in some step types. (See below for explanation of "steps.")
Column Type Size Department Alphanumeric 20 RouteStage Alphanumeric 50 Title Alphanumeric 20 Origin Alphanumeric 20 FieldName Alphanumeric 254 PositionInOverview Numeric 2 PositionInDetails Numeric 2 PositionInSteps Numeric 2 The ''Origin'' can have the following values:
Value Meaning RDR Sales order on which production order is based RDR_LINE Sales order line containing the item being produced WOR The production order itself ITM Item master data of item being produced CUSTOM Special The ''FieldName'' must contain the name of an SAP Business One object field with the name given to it in DI-API / Service Layer, not the name of the database column.
For example, if the origin is ''RDR'', then it's fine to use ''DocNum'' because that's the name of the field both in the database and in DI-API / Service Layer.
However, if the origin is ''WOR'', then you must use ''DocumentNumber'' instead, because even though in the database it's still ''DocNum'', in DI-API / Service Layer it's ''DocumentNumber'' instead.
If the origin is ''CUSTOM'', the following values are supported for the ''FieldName'':
Value Meaning __QUANTITYCompleted & planned quantity displayed as X / Y__QUANTITY_WTR_PRODTransferred & planned quantities displayed as X / YThe ''<nowiki>__QUANTITY_WTR_PROD</nowiki>'' is useful if you don't want to consider a quantity to be truly completed yet before it's transferred to the target warehouse. See the "step" of action type ''ProdWTR'' below.
Buttons
When the user selects a production order from the overview, the details/execution screen will be opened for that order. In this screen, there can be up to five buttons with various actions attached to them.
In the beginning all buttons are in the "Start" state. If a button has a ''TimeType'' value other than ''None'', then pressing it will switch the button into the "Stop" state and a timer will be started. The timer ends when the button is pressed again, or when a button of type ''Fault'' is pressed.
PPC Buttons Type Size Id Alphanumeric 20 Department Alphanumeric 20 RouteStage Alphanumeric 50 Position Numeric 1 StartTitle Alphanumeric 20 StopTitle Alphanumeric 20 TimeType Alphanumeric 20 The ''TimeType'' can have the following values:
Value Meaning Normal Regular production time Preparation Production preparation time Fault Duration of a fault situation None Button doesn't measure time If ''None'' is used, the button is always in the "Start" state.
Steps
We use the term "steps" to refer to one or more actions that can be tied to the clicking of a button in a certain state. This is how you can tie in actions like Goods Issue, Goods Receipt, and so on into the production workflow.
For example, you might have a simple "Begin Production / End Production" button, which triggers a Goods Issue step when it's clicked in the "Start" state, and triggers a Goods Receipt when in the "Stop" state.
PPC_STEPS Type Size -------------------- -------------- ------ Department Alphanumeric 20 RouteStage Alphanumeric 50 FirstStageOnly Alphanumeric 1 LastStageOnly Alphanumeric 1 ButtonId Alphanumeric 20 ButtonState Alphanumeric 20 Position Numeric 2 Title Alphanumeric 50 ShowAttrs Alphanumeric 1 ActionType Alphanumeric 20 ActionParam Alphanumeric 254 The ''Department'' and ''RouteStage'' fields, if filled, limit this step to the corresponding department (resource group) and/or route stage.
The ''FirstStageOnly'' and ''LastStageOnly'' fields can be ''Y'' or ''N'' and only make sense if the ''RouteStage'' field was left empty. They limit the step automatically to the first or last route stage in a production order, without having to explicitly name that stage.
The combination of ''ButtonId'' and ''ButtonState'' determines when the step will be triggered. The ''ButtonState'' must be ''Start'' or ''Stop''. (A button with ''TimeType = None'' is always in the ''Start'' state.)
The ''Position'' determines the order in which the steps will be executed if they would both be executed after a button event.
The ''ShowAttrs'' field can be ''Y'' or ''N'' and determines whether the display attributes of the production order should be shown in the step's screen.
The ''ActionType'' determines what type of step this is, and can have the following values:
Value Meaning AllItems List all item components of the production order MatsWTR Relocation of component items to be issued IGE Goods issue of the component items CompletedQty Enter completed quantity for current routing stage SimpleIGN Goods receipt of finished goods IGN Goods receipt with optional discarded/return items ProdWTR Relocation of received goods that were produced FillParams Parameter input screen (see below) Text Show the user a static text (e.g. instructions) Close Offer to close routing stage or production order The ''ActionParam'' can have different meanings depending on the ''ActionType''. The following table describes the meanings it can have. When there are multiple possibilities, they can be added together and separated with a comma.
Action type Meaning of ActionParamIGE Comma-separated list of item groups to include ::: Start with !to exclude insteadMatsWTR Comma-separated list of exactly two warehouse codes ::: Determines the from and to warehouse CompletedQty IGNIfLastto callSimpleIGNduring last stage::: PreFillQtyto pre-fill the quantity field::: OverwriteQtyto make the entered quantity overwrite the oldProdWTR Same as for MatsWTR FillParams Comma-separated list of parameter IDs Text The text that will be shown on the screen Close CloseDocIfLastto close production order during last stage(Note that the ''ActionParam'' has nothing to do with the "parameters" mechanism described below, except that for the ''FillParams'' action type it contains a list of parameter IDs.)
Parameters
We use the term "parameters" (not to be confused with "attributes") to refer to completely specialized values that users can input via a ''FillParams'' step, to document various information that doesn't fit into any standard SAP Business One logic.
For example, you might have a "Tool State" parameter, and add a ''FillParam'' step to an "End Production" button where the user has to specify in what shape the tool is (fine, damaged, broken).
PPC_PARAMS Column Type Size -------------------- -------------- ------ Id Alphanumeric 20 Name Alphanumeric 50 DataType Alphanumeric 20 ValidValues Alphanumeric 254 DefaultValue Alphanumeric 254 Mandatory Alphanumeric 1 MultiValue Alphanumeric 1 The ''DataType'' can be ''Text'' or ''Number''.
The ''ValidValues'' is a list of comma-separated values.
The ''Mandatory'' and ''MultiValue'' fields can be ''Y'' or ''N''.
When a ''FillParams'' step is executed, the values given by the user are saved in the following UDT.
Column Type Size Timestamp Alphanumeric 12 Resource Alphanumeric 50 EmployeeId Numeric 11 UserInfo Alphanumeric 20 WORDocEntry Numeric 11 RDRDocEntry Numeric 11 ParamId Alphanumeric 20 ParamValue Alphanumeric 254 Fault and rejection reasons
The fault reasons will be shown in a drop-down when a user clicks on a button with a ''TimeType'' value of ''Fault''. The user has to select one of the reasons before the fault state can be ended.
The fault reason will be saved in the ''Comment'' field of the ''PPC_WORSTATUS'' table (see below).
PPC_FAULT_REASONS Column Type Size --------------- -------------- ------ Reason Alphanumeric 254 The reject reasons are shown in a drop-down when a user wants to add rejected quantities in a Goods Receipt, i.e. goods that were produced but are being discarded again for some reason, like being damaged.
PPC_REJECT_REASONS Column Type Size --------------- -------------- ------ Reason Alphanumeric 254 Production status / timeline
The following table records all button start/stop events so the price state in which a production order is, and for how long it's been running, can be seen.
PPC_WORSTATUS Column Type Size -------------------- -------------- ------ Timestamp Alphanumeric 12 Resource Alphanumeric 50 EmployeeId Numeric 11 UserInfo Alphanumeric 20 WORDocEntry Numeric 11 WORDocLine Numeric 11 RDRDocEntry Numeric 11 PrevStatus Alphanumeric 20 Status Alphanumeric 20 ResourceGroup Alphanumeric 20 RouteStage Alphanumeric 50 ButtonId Alphanumeric 20 Comment Alphanumeric 254 In addition to the fields, it's recommended to add the following keys to this table for better performance:
PPC_WORSTATUS keys Key Columns ------ -------------------- IX_0 WORDocEntryWORDocLineIX_1 ResourceGroupIX_2 UserInfo(To add keys to a user-defined table in SAP Business One, open the User-Defined Fields - Management window, find the table under User Tables, click on the ''PPC_WORSTATUS'' table, and then click on the Keys button at the bottom right.)
User-defined fields
Resources can be tied to a specific route stage (aka sub-department) via this UDF:
Resource Master Data Column Type Size -------------------- -------------- ------ PPC_RouteStage Alphanumeric 20 Items can be declared to be of various types: ''Tool'', ''RawMaterial'', ''IntermediateProduct'', ''FinalProduct'', ''ByProduct''. However, currently only the ''Tool'' type is used. Items of type ''Tool'' will be automatically added to a Goods Receipt document as returned good.
Item Master Data Column Type Size -------------------- -------------- ------ PPC_ItemType Alphanumeric 20 Since Relocation documents can't be based on a Production Order, the following UDF is used to specify for which Production Order they were executed:
Documents Column Type Size -------------------- -------------- ------ PPC_WORDocId Numeric 11 PPC_User Alphanumeric 20 Times measured by COBI.ppc are booked as a Goods Issue with a Resource line; the following UDF describes what time of type this was (Normal, Preparation, Fault).
Document Lines Column Type Size -------------------- -------------- ------ PPC_TimeType Alphanumeric 20 In the following UDFs, COBI.ppc stores information about the status of a routing stage within a production order.
The UDF ''PPC_CompletedQty'' represents the quantity of items whose processing //within this routing stage// has been completed, although they may still have to go through other routing stages before they can be booked in as a Receipt from Production.
The UDF ''PPC_Closed'' can be set to Y to indicate that no further processing will take place within the routing stage.
Production Order - Route Stage Rows Column Type / Structure Size Valid values Default PPC_CompletedQty Units and Totals / Quantity PPC_DiscardedQty Units and Totals / Quantity PPC_User Alphanumeric 254 PPC_Closed Alphanumeric 1 Y / N N