Skip to main content
Skip table of contents

TBeProductionMaterialAvailabilityBusinessController

TBeProductionMaterialAvailabilityBusinessController

Die Klasse TBeProductionMaterialAvailabilityBusinessController kapselt Funktionen um die Material-Verfügbarkeit bei Fertigungsaufträgen in der Produktion berechnen zu können.

Eigenschaften

EigenschaftBeschreibung

CbDataModule:N

Zu verwendendes Datenmodul. Muss zugewiesen werden.

CbOnlyOrderNo:C

Erlaubt das setzen einer Fertigungs-Auftrags-Nummer. Ist dieser Wert gesetzt, wird eine Berechnung für Material-Verfügbarkeit über Calc() oder CalcAndWriteBack() nur für diesen Auftrag durchgeführt. (Default = leer => Berechnung für alle Fertigungsaufträge)

CbCalcPacked:L

Bei True werden bereits kommissionierte Fertigungsaufträge bei einer Berechnung berücksichtigt. (Default = False).

CbCalcMissing:L

Bestimmt ob trotz Fehlteilen mit der Fertigung begonnen werden darf. (Default = False)

Methoden

Methode Beschreibung

CalcAndWriteBack()

Diese Methode berechnet die Material-Verfügbarkeiten in Abhängigkeit der gesetzten Werte für z. B. CbOnlyOrderNo und schreibt die berechneten Werte zurück in die DAB035

Calc()

Diese Methode führt genau wie CalcAndWriteBack() eine Berechnung der Material-Verfügbarkeiten durch jedoch werden die Werte hier nicht in die Datenbank zurückgeschrieben. Stattdessen wird das Ergebnis zurückgegeben.
Das Ergebnis kann hierbei ein String oder ein Array sein.
Wird vor der Berechnung CbOnlyOrderNo auf einen gültigen Fertigungsauftrag gesetzt so liefert die Funktion nur die Verfügbarkeit für diesen Auftrag zurück.

Wird kein Fertigungsauftrag angegeben so liefert die Funktion ein Array mit folgender Struktur:
\[ \[FA-Nummer + SplitNo, Priorität, Verfügbarkeit\], \[... , ... , ...\] \]

Mögliche Werte für die Verfügbarkeit sind:

'J'Material ist komplett verfügbar
'E'Material ist komplett verfügbar, wenn Aufträge mit höherer Prio oder gleicher Prio und früherem Termin nicht. (E steht für Einzeln betrachtet)
'T'Teilweise produzierbar (u. U. aber nur "möglich")
'N'Nicht produzierbar

Verfügbare Ereignisse

Ereignis

OnProgress

Beispiel

CODE
//##############################################################################
//##############################################################################
// Beschreibung: Dieses Beispiel zeigt wie der
//               ProductionMaterialAvailabilityBusinessController verwendet
//               werden kann.
//##############################################################################
//##############################################################################
| oProductionMABC, oDM |

oDM := CreateObject('TBeDBGet'),
startseq
   // Erzeugen des BusinessControllers mit oDM als Owner -> Kein Zerstören notwendig
   oProductionMABC := CreateObject('TBeProductionMaterialAvailabilityBusinessController', 'TESTPMABC', oDM),
   oProductionMABC.CbDataModule := oDM, // Zu verwendendes DatenModul zuweisen
                                        // ohne eine Zuweisung werfen die
                                        // Funktionen Calc() und
                                        // CalcAndWriteBack() eine Exception

   // Setzen der gewünschten Einstellungen
   oProductionMABC.CbOnlyOrderNo := '600005', // Auftragsnummer für Einzelberechnung
   oProductionMABC.CbCalcPacked  := True,     // Bereits kommissionierte FA berücksichtigen
   oProductionMABC.CbCalcMissing := True,     // Es darf trotz Fehlteilen begonnen werden

   // Die berechnungen Calc() oder CalcAndWriteBack() erfordern eine aktive Transaktion.
   DBStartTrans(oDM.ADSConnection),
   startseq

      // Berechnung für einzelnen FA ohne das Ergebnis in die DB zu schreiben
      writeln('Berechneter Wert', oProductionMABC.Calc()),

      // Nochmal berechnen und diesmal in die DB schreiben lassen (DAB035)
      oProductionMABC.CalcAndWriteBack(),

      // CbOnlyOrderNo leeren -> Berechnung für alle Fertigungsaufträge
      oProductionMABC.CbOnlyOrderNo := '',

      // Berechnung für mehrere FA ohne DB-Änderungen
      writeln('Berechnete Werte: ' + ArrToStr(oProductionMABC.Calc())),

      // Da dies nur ein Beispiel sein soll werden sämtliche Aktionen auf der
      // Datenbank rückgewickelt
      DBRollback(oDM.ADSConnection),

//      DBCommit(oDM.ADSConnection),
   always
      if DBInTrans(oDM.ADSConnection) then
         DBRollback(oDM.ADSConnection),
      endif,
   stopseq,
always
   DestroyObject(oDM),
stopseq,

Weitere Verknüpfungen


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.