This is an old revision of the document!
COBI.ppc
Table of Contents
COBI.ppc ist eine Produktionsprozesssteuerungslösung – auch bekannt als Manufacturing Execution System (MES) – für SAP Business One, die hauptsächlich in Form einer Android-App angeboten wird. Sie ist ähnlich aufgebaut wie COBI.wms und basiert technisch darauf, wurde jedoch speziell für komplexe Produktionsabläufe entwickelt.
Einstellungen
Die folgenden UDTs und UDFs werden von COBI.ppc verwendet.
WICHTIG: Alle Tabellen müssen vom Typ „Kein Objekt mit Auto-Inkrement“ sein.
Attribute
In COBI.ppc verwenden wir den Begriff „Attribute“, um Informationen über Fertigungsaufträge zu bezeichnen, die dem Benutzer angezeigt werden.
Diese Attribute können aus verschiedenen Quellen stammen (siehe Origin) und werden in der Produktionsübersicht, in den Details/der Ausführungsansicht eines Fertigungsauftrags sowie in bestimmten Schritttypen angezeigt (siehe unten die Erklärung zu „Schritten“).
PPC_ATTRIBUTES |
||
|---|---|---|
| Spalte | Typ | Größe |
| Department | Alphanumerisch | 20 |
| RouteStage | Alphanumerisch | 50 |
| Title | Alphanumerisch | 20 |
| Origin | Alphanumerisch | 20 |
| FieldName | Alphanumerisch | 254 |
| PositionInOverview | Numerisch | 2 |
| PositionInDetails | Numerisch | 2 |
| PositionInSteps | Numerisch | 2 |
Der Wert Origin kann die folgenden Bedeutungen haben:
| Wert | Bedeutung |
|---|---|
| RDR | Kundenauftrag, auf dem der Fertigungsauftrag basiert |
| RDR_LINE | Positionszeile des Kundenauftrags mit dem zu fertigenden Artikel |
| WOR | Der Fertigungsauftrag selbst |
| ITM | Stammdaten des zu fertigenden Artikels |
| CUSTOM | Benutzerdefiniert / Speziell |
Das Feld „FieldName“ muss den Namen eines SAP Business One Objektfeldes enthalten — in der Schreibweise aus DI-API / Service Layer, nicht den Datenbankspaltennamen.
Beispiel: Wenn die Herkunft (Origin) „RDR“ ist, kann der Feldname „DocNum“ verwendet werden, da dieser sowohl in der Datenbank als auch in der DI-API / dem Service Layer gleich heißt.
Wenn die Herkunft jedoch „WOR“ ist, muss „DocumentNumber“ verwendet werden, da das Feld zwar in der Datenbank „DocNum“, in der DI-API bzw. im Service Layer jedoch „DocumentNumber“ heißt.
Wenn die Herkunft (Origin) „CUSTOM“ ist, werden die folgenden Werte für das Feld „FieldName“ unterstützt:
| Wert | Bedeutung |
|---|---|
__QUANTITY | Abgeschlossene und geplante Menge, angezeigt als „X / Y“ |
__QUANTITY_WTR_PROD | Übertragene und geplante Menge, angezeigt als „X / Y“ |
Das Feld __QUANTITY_WTR_PROD ist besonders nützlich, wenn eine Menge erst dann als vollständig abgeschlossen gelten soll, nachdem sie in das Ziellager übertragen wurde.
Siehe hierzu den Schritt mit dem Aktionstyp „ProdWTR“ weiter unten.
Knöpfe
Wenn der Benutzer in der Übersicht einen Fertigungsauftrag auswählt, wird der Detail- bzw. Ausführungsbildschirm für diesen Auftrag geöffnet. In diesem Bildschirm können bis zu fünf Schaltflächen mit unterschiedlichen Aktionen angezeigt werden.
Zu Beginn befinden sich alle Schaltflächen im „Start“-Status.
Wenn eine Schaltfläche einen TimeType-Wert ungleich None besitzt, wird beim Betätigen die Schaltfläche in den „Stop“-Status versetzt und ein Timer gestartet.
Dieser Timer endet entweder, wenn dieselbe Schaltfläche erneut gedrückt wird, oder wenn eine Schaltfläche des Typs Fault betätigt wird.
PPC_BUTTONS |
||
|---|---|---|
| Spalte | Typ | Größe |
| Id | Alphanumerisch | 20 |
| Department | Alphanumerisch | 20 |
| RouteStage | Alphanumerisch | 50 |
| Position | Numerisch | 1 |
| StartTitle | Alphanumerisch | 20 |
| StopTitle | Alphanumerisch | 20 |
| TimeType | Alphanumerisch | 20 |
Der Wert TimeType kann die folgenden Bedeutungen haben:
| Wert | Bedeutung |
|---|---|
| Normal | Reguläre Produktionszeit |
| Preparation | Vorbereitungszeit für die Produktion |
| Fault | Dauer einer Störungssituation |
| None | Schaltfläche misst keine Zeit |
Wenn None verwendet wird, bleibt die Schaltfläche immer im „Start“-Status.
Schritte
Wir verwenden den Begriff „Schritte“ (steps), um eine oder mehrere Aktionen zu beschreiben, die mit dem Klicken einer Schaltfläche in einem bestimmten Status verknüpft werden können. Auf diese Weise lassen sich Aktionen wie Warenausgabe, Wareneingang usw. in den Produktionsablauf integrieren.
Beispiel: Es könnte eine einfache Schaltfläche „Produktion starten / Produktion beenden“ geben. Wird sie im „Start“-Status gedrückt, wird ein Warenausgabe-Schritt ausgelöst. Wird sie im „Stop“-Status gedrückt, wird ein Wareneingangs-Schritt ausgeführt.
PPC_STEPS |
||
|---|---|---|
| Spalte | Typ | Größe |
| Department | Alphanumerisch | 20 |
| RouteStage | Alphanumerisch | 50 |
| FirstStageOnly | Alphanumerisch | 1 |
| LastStageOnly | Alphanumerisch | 1 |
| ButtonId | Alphanumerisch | 20 |
| ButtonState | Alphanumerisch | 20 |
| Position | Numerisch | 2 |
| Title | Alphanumerisch | 50 |
| ShowAttrs | Alphanumerisch | 1 |
| ActionType | Alphanumerisch | 20 |
| ActionParam | Alphanumerisch | 254 |
Die Felder Department und RouteStage begrenzen – sofern sie ausgefüllt sind – den jeweiligen Schritt auf die entsprechende Abteilung (Ressourcengruppe) und/oder Routenstufe.
Die Felder FirstStageOnly und LastStageOnly können den Wert Y oder N annehmen und sind nur relevant, wenn das Feld RouteStage leer bleibt.
Sie schränken den Schritt automatisch auf die erste bzw. letzte Routenstufe eines Fertigungsauftrags ein, ohne dass diese explizit benannt werden muss.
Die Kombination aus ButtonId und ButtonState bestimmt, wann der Schritt ausgelöst wird.
Der Wert ButtonState muss entweder Start oder Stop sein.
(Eine Schaltfläche mit TimeType = None befindet sich stets im Start-Status.)
Das Feld Position legt die Reihenfolge fest, in der mehrere Schritte ausgeführt werden, falls sie beide nach einem Button-Ereignis aktiviert würden.
Das Feld ShowAttrs kann Y oder N sein und bestimmt, ob die Anzeigattribute des Fertigungsauftrags im Bildschirm des Schritts dargestellt werden sollen.
Das Feld ActionType legt fest, welche Art von Schritt ausgeführt wird, und kann die folgenden Werte annehmen:
| Wert | Bedeutung |
|---|---|
| AllItems | Listet alle Komponentenartikel des Fertigungsauftrags auf |
| MatsWTR | Umlagerung der auszugebenden Komponentenartikel |
| IGE | Warenausgabe der Komponentenartikel |
| CompletedQty | Eingabe der fertiggestellten Menge für die aktuelle Routenstufe |
| SimpleIGN | Wareneingang der fertigen Erzeugnisse |
| IGN | Wareneingang mit optionaler Erfassung von Ausschuss- oder Retourenartikeln |
| ProdWTR | Umlagerung der produzierten und empfangenen Waren |
| FillParams | Eingabemaske für Parameter (siehe unten) |
| Text | Zeigt dem Benutzer statischen Text an (z. B. Anweisungen) |
| Close | Bietet an, die Routenstufe oder den gesamten Fertigungsauftrag zu schließen |
Das Feld ActionParam kann – abhängig vom jeweiligen ActionType – unterschiedliche Bedeutungen haben.
Die folgende Tabelle beschreibt die möglichen Bedeutungen.
Wenn mehrere Optionen verwendet werden sollen, können diese durch Kommas getrennt kombiniert werden.
| Aktionstyp | Bedeutung von ActionParam |
|---|---|
| IGE | Kommagetrennte Liste von Artikelgruppen, die eingeschlossen werden sollen |
| Beginnt der Eintrag mit „!“, werden die angegebenen Gruppen ausgeschlossen | |
| MatsWTR | Kommagetrennte Liste von genau zwei Lagercodes |
| Bestimmt das Quell- und Ziellager | |
| CompletedQty | IGNIfLast ruft während der letzten Routenstufe automatisch SimpleIGN auf |
PreFillQty füllt das Mengenfeld vorab aus |
|
OverwriteQty sorgt dafür, dass die eingegebene Menge den bisherigen Wert überschreibt |
|
| ProdWTR | Gleiche Logik wie bei MatsWTR |
| FillParams | Kommagetrennte Liste von Parameter-IDs |
| Text | Der Text, der im Bildschirm angezeigt wird |
| Close | CloseDocIfLast schließt den Fertigungsauftrag in der letzten Routenstufe |
(Hinweis: Das Feld ActionParam steht nicht in direktem Zusammenhang mit dem unten beschriebenen Parameter-Mechanismus
mit Ausnahme des Aktionstyps FillParams, bei dem es eine Liste von Parameter-IDs enthält.)
Parameter
Wir verwenden den Begriff „Parameter“ (nicht zu verwechseln mit „Attributen“), um spezialisierte Werte zu bezeichnen, die Benutzer in einem FillParams-Schritt eingeben können.
Damit lassen sich Informationen erfassen, die in keine Standardlogik von SAP Business One passen.
Beispiel:
Sie könnten einen Parameter „Werkzeugzustand“ definieren und einen FillParams-Schritt einer „Produktion beenden“-Schaltfläche hinzufügen, bei dem der Benutzer angeben muss, in welchem Zustand sich das Werkzeug befindet (z. B. in Ordnung, beschädigt, defekt).
PPC_PARAMS |
||
|---|---|---|
| Spalte | Typ | Größe |
| Id | Alphanumerisch | 20 |
| Name | Alphanumerisch | 50 |
| DataType | Alphanumerisch | 20 |
| ValidValues | Alphanumerisch | 254 |
| DefaultValue | Alphanumerisch | 254 |
| Mandatory | Alphanumerisch | 1 |
| MultiValue | Alphanumerisch | 1 |
Der Wert DataType kann Text oder Number sein.
Das Feld ValidValues enthält eine kommagetrennte Liste zulässiger Werte.
Die Felder Mandatory und MultiValue können jeweils den Wert Y oder N annehmen.
Wenn ein FillParams-Schritt ausgeführt wird, werden die vom Benutzer eingegebenen Werte in der folgenden UDT gespeichert:
PPC_PARAM_INPUTS |
||
|---|---|---|
| Spalte | Typ | Größe |
| Timestamp | Alphanumerisch | 12 |
| Resource | Alphanumerisch | 50 |
| EmployeeId | Numerisch | 11 |
| UserInfo | Alphanumerisch | 20 |
| WORDocEntry | Numerisch | 11 |
| RDRDocEntry | Numerisch | 11 |
| ParamId | Alphanumerisch | 20 |
| ParamValue | Alphanumerisch | 254 |
Störungs- und Ausschussgründe
Die Störungsgründe werden in einem Dropdown-Menü angezeigt, sobald ein Benutzer eine Schaltfläche mit dem Wert TimeType = Fault betätigt.
Der Benutzer muss einen der Gründe auswählen, bevor der Störungsstatus beendet werden kann.
Der ausgewählte Störungsgrund wird im Feld Comment der Tabelle PPC_WORSTATUS gespeichert (siehe unten).
PPC_FAULT_REASONS |
||
|---|---|---|
| Spalte | Typ | Größe |
| Reason | Alphanumerisch | 254 |
Die Ausschussgründe werden in einem Dropdown angezeigt, wenn ein Benutzer bei einem Wareneingang ausgeschiedene Mengen erfassen möchte – also Waren, die produziert, aber aufgrund eines Defekts oder anderer Gründe wieder verworfen werden.
PPC_REJECT_REASONS |
||
|---|---|---|
| Spalte | Typ | Größe |
| Reason | Alphanumerisch | 254 |
Produktionsstatus / Zeitachse
Die folgende Tabelle protokolliert alle Start-/Stopp-Ereignisse von Schaltflächen, damit nachvollzogen werden kann, in welchem Status sich ein Fertigungsauftrag befindet und wie lange dieser Status aktiv war.
PPC_WORSTATUS |
||
|---|---|---|
| Spalte | Typ | Größe |
| Timestamp | Alphanumerisch | 12 |
| Resource | Alphanumerisch | 50 |
| EmployeeId | Numerisch | 11 |
| UserInfo | Alphanumerisch | 20 |
| WORDocEntry | Numerisch | 11 |
| WORDocLine | Numerisch | 11 |
| RDRDocEntry | Numerisch | 11 |
| PrevStatus | Alphanumerisch | 20 |
| Status | Alphanumerisch | 20 |
| ResourceGroup | Alphanumerisch | 20 |
| RouteStage | Alphanumerisch | 50 |
| ButtonId | Alphanumerisch | 20 |
| Comment | Alphanumerisch | 254 |
Zusätzlich zu den Feldern wird empfohlen, folgende Indizes (Keys) anzulegen, um die Performance zu verbessern:
PPC_WORSTATUS Keys |
|
|---|---|
| Schlüssel | Spalten |
| IX_0 | WORDocEntry |
WORDocLine |
|
| IX_1 | ResourceGroup |
| IX_2 | UserInfo |
(Um Schlüssel zu einer benutzerdefinierten Tabelle in SAP Business One hinzuzufügen, öffnen Sie das Fenster Benutzerdefinierte Felder – Verwaltung,
suchen Sie die Tabelle unter Benutzerdefinierte Tabellen, wählen Sie PPC_WORSTATUS aus und klicken Sie anschließend unten rechts auf „Schlüssel“.)
Benutzerdefinierte Felder
Ressourcen können über das folgende UDF einer bestimmten Routenstufe (auch Unterabteilung genannt) zugeordnet werden:
| Ressourcen-Stammdaten | ||
|---|---|---|
| Spalte | Typ | Größe |
| PPC_RouteStage | Alphanumerisch | 20 |
Artikel können in verschiedene Typen klassifiziert werden:
Tool, RawMaterial, IntermediateProduct, FinalProduct, ByProduct.
Aktuell wird jedoch nur der Typ Tool verwendet.
Artikel dieses Typs werden bei einem Wareneingang automatisch als Rückgabeartikel hinzugefügt.
| Artikel-Stammdaten | ||
|---|---|---|
| Spalte | Typ | Größe |
| PPC_ItemType | Alphanumerisch | 20 |
Da Umlagerungsbelege nicht direkt auf einem Fertigungsauftrag basieren können, wird das folgende UDF verwendet, um anzugeben, zu welchem Fertigungsauftrag sie gehören:
| Belege | ||
|---|---|---|
| Spalte | Typ | Größe |
| PPC_WORDocId | Numerisch | 11 |
| PPC_User | Alphanumerisch | 20 |
Von COBI.ppc gemessene Zeiten werden als Warenausgabe mit einer Ressourcenposition gebucht. Das folgende UDF beschreibt, um welchen Zeittyp es sich handelt (Normal, Preparation, Fault):
| Belegzeilen | ||
|---|---|---|
| Spalte | Typ | Größe |
| PPC_TimeType | Alphanumerisch | 20 |
In den folgenden UDFs speichert COBI.ppc Informationen über den Status einer Routenstufe innerhalb eines Fertigungsauftrags.
Das Feld PPC_CompletedQty gibt die Menge der Artikel an, deren Bearbeitung innerhalb dieser Routenstufe abgeschlossen wurde –
auch wenn sie möglicherweise noch weitere Stufen durchlaufen müssen, bevor sie als Wareneingang aus der Produktion gebucht werden können.
Das Feld PPC_Closed kann auf Y gesetzt werden, um anzuzeigen, dass keine weitere Bearbeitung innerhalb dieser Routenstufe erfolgt.
| Fertigungsauftrag – Routenstufenzeilen | ||||
|---|---|---|---|---|
| Spalte | Typ / Struktur | Größe | Gültige Werte | Standard |
| PPC_CompletedQty | Einheiten und Summen / Menge | |||
| PPC_DiscardedQty | Einheiten und Summen / Menge | |||
| PPC_User | Alphanumerisch | 254 | ||
| PPC_Closed | Alphanumerisch | 1 | Y / N | N |