Skip to main content
Skip table of contents

TBeCbChangeStateOfConstruction


TBeCbChangeStateOfConstruction

Die Klasse TBeCbChangeStateOfConstruction kapselt Eigenschaften und Funktionen zum Ändern eines Bauzustands.

Für die Benutzung der Funktionen müssen zuvor die Properties CbMasterArtNo, CbMasterSerialNo, CbArtNo, CbSerialNo auf die gewünschten Werte gesetzt werden.

Eigenschaften:

Eigenschaften

 Beschreibung

 CbDataModule:O

Daten-Modul

 CbMasterArtNo:C

Artikelnummer, dessen Baugruppe geändert werden soll

 CBMasterSerialNo:C

Seriennummer des Artikels, dessen Baugruppe geändert werden soll

 CbArtNo:C

Artikelnummer des zu ändernden Artikels

 CbSerialNo:C

Seriennummer des zu ändernden Artikels

 CbVoucherNo:C

Belegnummer

 CbModifiedDate:D

Datum der Änderung

 CbErrorMode:N

Verhalten im Fehlerfall:

  • errmShowMsg -> Fehlermeldung anzeigen

  • errmRaise -> Exception auslösen

  • errmResult -> Boolean-wert als Rückgabe


Funktionen und Methoden



 CbCanChangeSerialNo():L

Mit dieser Funktion lässt sich prüfen, ob die Seriennummer des übergebenen Artikels verändert werden darf.

aNewSerialNo:C

Gewünschte Seriennummer

 CbCanDeleteSerialNoArticle():L

Prüft, ob ein Artikel aus dem aktuellen Bauzustand entfernt werden kann.

 CbCanUseSerialNoArticleForChangeSoC():L

Prüft, ob Serien-Nr. Artikel für eine Änderung des Bauzustands benutzt / beim Master-Artikel hinzugefügt werden kann.
Der Artikel:

  • darf keine Variante sein

  • muss ein Serien-Nr. Artikel sein (Serien-Nr. muss existieren)

  • darf nicht auf Lager sein

  • darf nicht in einem anderen Artikel verbaut sein

  • darf nicht im Versand sein

 CbCanModifySerialNoArticle():L

Prüfen, ob der Bauzustand eines Artikels verändert werden kann.

 CbChangeSerialNo():L

Seriennummer eines Artikels austauschen.

aNewSerialNo:C

Neue Seriennummer

 CbDeleteSerialNoArticle():L

Serien-Nr. Artikel aus einem Bauzustand löschen.

 CbInsertSerialNoArticle():L

Serien-Nr. Artikel zu einem Bauzustand hinzufügen.

Beispiel

CODE
| m_oStateObj, m_cMasterArtNR, m_cMasterSerNr, m_cSubArtNr, m_cSubSerNr |

//******************************************************************************
// Gibt alle Propertie-Werte eines ChangeStateOfConstruction-Objectes aus
//******************************************************************************
function WriteCurrentObjectState(oObj)
   writeln('##############'),
   writeln('VoucherNo', oObj.CbVoucherNo),
   writeln('SerialNo', oObj.CbSerialNo),
   writeln('ArtNo', oObj.CbArtNo),
   writeln('MasterSerialNo', oObj.CbMasterSerialNo),
   writeln('MasterArtNo:', oObj.CbMasterArtNo),
   writeln('ErrorMode', oObj.CbErrorMode),
end,


m_oStateObj := CreateObject('TBeCbChangeStateOfConstruction', 'CSOC'),
startseq
   startseq
      // ACHTUNG: Diese Daten müssen, für eine erfolgreiche Ausführung,
      //          für den jeweiligen Datenbestand angepasst werden.
      //          Hierbei ist darauf zu achten, dass dieses Beispiel einige
      //          Änderungen an den gewählten Artikel durchführt. Es ist daher
      //          ratsam einen Testartikel zu verwenden.
      m_cMasterArtNR := 'PC',
      m_cMasterSerNr := '40',
      m_cSubArtNr    := 'PC_CPU',
      m_cSubSerNr    := '1',

      // Hauptartikel setzen
      m_oStateObj.CbMasterArtNo    := m_cMasterArtNR,
      m_oStateObj.CbMasterSerialNo := m_cMasterSerNr,

      // Unterartikel setzen
      m_oStateObj.CbArtNo       := m_cSubArtNr,
      m_oStateObj.CbSerialNo    := m_cSubSerNr,

      writeln('########## Konfiguration der Properties '),
      WriteCurrentObjectState(m_oStateObj),


      writeln(crlf + '########## CbCanChangeSerialNo ' + crlf),
      //************************************************************************
      // CbCanChangeSerialNo und CbErrorMode
      //************************************************************************
      // CbErrorMode -> Fehlermeldung ausgeben
      m_oStateObj.CbErrorMode := errmShowMsg,
      m_oStateObj.CbCanChangeSerialNo(m_cSubSerNr),

      // CbErrorMode -> Exception auslösen
      startseq
         m_oStateObj.CbErrorMode := errmRaise,
         m_oStateObj.CbCanChangeSerialNo(m_cSubSerNr),
      onerror
         writeln('Fehlerausgabe ' + GetErrorText()),
      stopseq,

      // CbErrorMode -> boolean zurückgeben
      m_oStateObj.CbErrorMode := errmResult,
      iif(m_oStateObj.CbCanChangeSerialNo(m_cSubSerNr),
                                          writeln('Änderbar'),
                                          writeln('Nicht änderbar')),
      iif(m_oStateObj.CbCanChangeSerialNo(112),
                                          writeln('Änderbar'),
                                          writeln('Nicht änderbar')),

      //************************************************************************
      // CanModifySerialNoArticle
      //************************************************************************
      writeln(crlf + '########## CanModifySerialNoArticle' + crlf),

      // CbErrorMode -> Fehlermeldung ausgeben
      m_oStateObj.CbMasterArtNo    := m_cMasterArtNR,
      m_oStateObj.CbMasterSerialNo := 999,
      m_oStateObj.CbErrorMode      := errmShowMsg,
      m_oStateObj.CbCanModifySerialNoArticle(),

      // CbErrorMode -> Exception auslösen
      startseq
         m_oStateObj.CbErrorMode := errmRaise,
         m_oStateObj.CbCanModifySerialNoArticle(),
      onerror
         writeln('Fehlerausgabe ' + GetErrorText()),
      stopseq,

      // CbErrorMode -> boolean zurückgeben
      m_oStateObj.CbErrorMode := errmResult,
      iif(m_oStateObj.CbCanModifySerialNoArticle(),
                                                 writeln('Änderbar'),
                                                 writeln('Nicht änderbar')),
      m_oStateObj.CbMasterSerialNo := m_cMasterSerNr,
      iif(m_oStateObj.CbCanModifySerialNoArticle(),
                                                 writeln('Änderbar'),
                                                 writeln('Nicht änderbar')),

      //************************************************************************
      // CbCanDeleteSerialNoArticle
      //************************************************************************
      writeln(crlf + '########## CbCanDeleteSerialNoArticle' + crlf),

      m_oStateObj.CbMasterArtNo    := m_cMasterArtNr,
      m_oStateObj.CbMasterSerialNo := m_cMasterSerNr,
      m_oStateObj.CbArtNo          := m_cSubArtNr,
      m_oStateObj.CbSerialNo       := 999999,

      // CbErrorMode -> Fehlermeldung ausgeben
      m_oStateObj.CbErrorMode := errmShowMsg,
      m_oStateObj.CbCanDeleteSerialNoArticle(),

      // CbErrorMode -> Exception auslösen
      startseq
         m_oStateObj.CbSerialNo  := 999,
         m_oStateObj.CbErrorMode := errmRaise,
         m_oStateObj.CbCanDeleteSerialNoArticle(), // Gibt hier keine exception aus?!
      onerror
         writeln('Fehlerausgabe ' + GetErrorText()),
      stopseq,

      m_oStateObj.CbMasterArtNo    := m_cMasterArtNR,
      m_oStateObj.CbMasterSerialNo := 999999,
      m_oStateObj.CbErrorMode      := errmResult,
      // CbErrorMode -> boolean zurückgeben
      iif(m_oStateObj.CbCanDeleteSerialNoArticle(), writeln('Löschbar'), writeln('Nicht löschbar')),
      m_oStateObj.CbMasterSerialNo := 1,
      iif(m_oStateObj.CbCanDeleteSerialNoArticle(), writeln('Löschbar'), writeln('Nicht löschbar')),

      //************************************************************************
      // CbCanUseSerialNoArticleForChangeSoC
      //************************************************************************
      writeln(crlf + '########## CbCanUseSerialNoArticleForChangeSoC' + crlf),

      m_oStateObj.CbArtNo    := m_cSubArtNr,
      m_oStateObj.CbSerialNo := 999,

      // CbErrorMode -> Fehlermeldung ausgeben
      m_oStateObj.CbErrorMode := errmShowMsg,
      m_oStateObj.CbCanUseSerialNoArticleForChangeSoC(),

      // CbErrorMode -> Exception auslösen
      m_oStateObj.CbErrorMode := errmRaise,
      startseq
         m_oStateObj.CbCanUseSerialNoArticleForChangeSoC(), // Gibt hier keine exception aus?!
      onerror
         writeln('Fehlerausgabe ' + GetErrorText()),
      stopseq,

      // CbErrorMode -> boolean zurückgeben
      m_oStateObj.CbErrorMode := errmResult,
      iif(m_oStateObj.CbCanUseSerialNoArticleForChangeSoC(), writeln('Verwendbar'), writeln('Nicht verwendbar')),
      m_oStateObj.CbSerialNo := m_cSubSerNr,
      iif(m_oStateObj.CbCanUseSerialNoArticleForChangeSoC(), writeln('Verwendbar'), writeln('Nicht verwendbar')),

      //************************************************************************
      // CbChangeSerialNo
      //************************************************************************
      m_oStateObj.CbChangeSerialNo(3),           // Seriennummer von 1 -> 3
      m_oStateObj.CbSerialNo := '3',             // Neu positionieren
      m_oStateObj.CbChangeSerialNo(m_cSubSerNr), // Seriennummer zurück von 3 -> 1

      //************************************************************************
      // CbDeleteSerialNoArticle und CbInsertSerialNoArticle
      //************************************************************************
      m_oStateObj.CbSerialNo  := m_cSubSerNr, // Positionieren
      m_oStateObj.CbErrorMode := errmResult,  // Rückgabe als Boolean
      if m_oStateObj.CbDeleteSerialNoArticle() then // Wenn Löschen OK dann wieder hinzufügen
         writeln(iif(m_oStateObj.CbInsertSerialNoArticle(), 'Gelöscht und wieder hinzugefügt', 'Fehler')),
      else
         writeln('Löschen fehlgeschlagen'),
      endif,
   onerror
      MessageDlg(GetErrorText()),
   stopseq,
always
   DestroyObject(m_oStateObj),
stopseq,


JavaScript errors detected

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

If this problem persists, please contact our support.