Arbeitsvorräte

Einleitung

Die B2BBP-Frontend-Applikation (Adobe Flex) unterstützt die Bereitstellung von Arbeitsvorräten. Die Arbeitsvorräte werden als eigenständiges Modul in die Hauptnavigation der Benutzeroberfläche integriert:

Benutzer&Rollen

Das Modul “Arbeitsvorräte” ist als Framework implementiert, für welches mehrere Provider (z.B. Nachrichten-Monitor, Prozess-Monitor) ihre jeweiligen Arbeitsvorräte zur Verfügung stellen können.

Funktionalität

Benutzer&Rollen

Das Arbeitsvorräte-Framework stellt dabei nur den Rahmen dar (oberer umrahmter Bereich). Der Inhalt des Tabs wird vom Arbeitsvorrat-Provider (z.B. Nachrichten-Monitor) erzeugt (unterer umrahmter Bereich).

Konfiguration

Modul “Arbeitsvorräte” einbinden

Das Modul “Arbeitsvorräte” wird als Overwirte bei Benutzer&Rollen eingebunden.

Benutzer&Rollen


Die Einbindung in die Navigation erfolgt per Rollenattribut:

Bsp.: Module_Inbox (ACHTUNG: Zeilenumbrüche entfernen!)

Benutzer&Rollen 

Die Reihenfolge in der Toolbar-Navigation (links) kann über die Datei “.configuration” in der Flex-Haupt-Anwendung (org.b2bbp.admin) konfiguriert werden. (<button>inboxViewLinkButton</button>hinzufügen)

Das Arbeitsvorrat Modul muss allen Benutzern zugeordnet werden, die die Arbeitsvorräte nutzen dürfen.

Global Property

Über diesen Parameter bekommt der Arbeitsvorrat den Provider für das Nachrichtenmonitoring zugewiesen. Dieser liefert dann die Arbeitsvorräte.

B3P\_INBOX\_MONITORING\_PROVIDERS = msgMonitor

Modul Nachrichtenmonitor einbinden

Analog zum Arbeitsvorrat-Modul, wird das “Nachrichtenmonitor” Modul als Extension abgelegt:

  • Name: MsgMonitor.swf
  • Provider: b2bbp.org
  • Version: 1.0

Damit der Nachrichtenmonitor im Arbeitsvorrat verwendet werden kann, muss er per Override registriert werden: Attribut ID: Module_MsgMonitor

Override={view=dummyView,type=AddChild,target=toolBarBox,name=org.b2bbp.ui.uicomponent.MainNavLinkButton,
value=\[id:'msgMonitor';label:'Monitoring';isExtension:'true';type:'MsgMonitor.swf';provider:'b2bbp.org';
version:'1.0';container:'applicationViewStack';toolTip:'Nachrichten-Monitor (Module)';
width:'180';labelPlacement:'right';textAlign:'left';horizontalGap:'10';paddingLeft:'5';paddingRight:'5';
iconURL:'images/famfamfam-icons/monitor.png'\]}

 

Sollte er schon existieren, muss view auf einen dummy Wert gesetzt werden, damit er in der Navigation nicht angezeigt wird, aber im Arbeitsvorrat verwendet werden kann.

Das Nachrichtenmonitor Modul muss allen Benutzern zugeordnet werden, die die Arbeitsvorräte nutzen dürfen.

Arbeitsvorräte für den Nachrichten-Monitor definieren

Die Arbeitsvorräte werden in der Benutzerverwaltung als Rollen-Attribute definiert. Die Rollen-Attribute können ein oder mehreren Rollen zugewiesen werden. Nur Benutzer, denen die entsprechende Rolle zugeordnet wurde, sehen auch den entsprechenden Arbeitsvorrat.

Empfohlene Namenskonvention für die Benennung der Arbeitsvorräte: 

Inbox\_&lt;Id des Arbeitsvorrat-Providers&gt;\_&lt;Name für den Arbeitsvorrat&gt;

Bsp. Arbeitsvorrat: Inbox_MSGMON_UTILMD_inbound

InboxViewDefinition={type=MSGMON,id=MSGMON\_inbound,title=UTILMD Inbound,
params=\[vdewType:'UTILMD';channel:'INBOUND'\]}

Eigenschaften

Wert

Beschreibung

type

MSGMON

Fester Wert für Arbeitsvorräte zum Nachrichten-Monitor

id

MSGMON_inbound

Eindeutige ID für der Arbeitsvorrat (Prefix "MSGMON_" zur Abgrenzung von anderen Providern)

title

UTILMD Inbound

Beliebiger Text, wird in der Dropdown-Liste und als Tab-Titel angezeigt

params

[vdewType:'UTILMD';channel:'INBOUND']

Liste der Suchparameter, mit denen die Abfrage im Nachrichten-Monitor ausgeführt werden soll. Mehrere Parameter werden durch Semikolon getrennt. Weiter unten sind die zulässigen Parameter aufgezählt

refreshOnStartup

0,1,2

= 0 (default) es wird nie automatisch gesucht = 1 es wird bei initialen Laden des Vorrats gesucht = 2 es wird auch beim Tabwechsel gesucht.

Zulässige Suchparameter für die Eigenschaft “params”:

  • refNr
  • vdewType
  • state (Verarbeitungsstatus)
  • ack (Bestätigungsstatus)
  • ccode (Clearing Code)
  • partner
  • sysNr
  • channel
  • dir (Zulässige Werte: “inbound”, “outbound”)
  • searchTerm
  • sqlWherePart (Der String wird AND verknüpft direkt an den WHERE Teil der SQL Abfrage angehängt. Hier darf allerdings kein Komma verwendet werden. Somit wird das SQL-Statement “(NOT) IN(‘a’,’b’)” nicht unterstützt. Es muss durch mehrere “=” oder “!=” ersetzt werden.)

weitere Arbeitsvorrat-Beispiele

Standard Nachrichtenmonitor :

\_MSG

Nachrichten ohne Contrl/Aperak : InboxViewDefinition={type=MSGMON,id=MSGMON\_only\_main\_messages,title=Nachrichten ohne Contrl/Aperak,params=\[searchTerm:'UNB -APERAK -CONTRL'\]}

Alle technischen Fehler : InboxViewDefinition={type=MSGMON,id=MSGMON\_inbound\_error,title=Alle technischen Fehler,params=\[state:'ERR'\]}

Nicht fristgerechte Contrls: InboxViewDefinition={type=MSGMON,id=MSGMON\_contrl\_waiting,title=Nicht fristgerechte Contrls,params=\[ack:'CTN'\]}

eingehende Aperaks und neg. Contrls : InboxViewDefinition={type=MSGMON,id=MSGMON\_inbound\_error,title=eingehende Aperaks und neg Contrls,params=\[sqlWherePart:'state ='ERR' AND direction = 0 AND (vdewtype = 'CONTRL' OR vdewtype = 'APERAK')'\]}

Alle Nachrichten (ein- und ausgehend) mit Verarbeitungsstatus Fehler AUSSER eingehenden CONTRL und APERAKS: InboxViewDefinition={type=MSGMON,id=MSGMON\_inbound\_error2,title=IT Fehler,params=\[sqlWherePart:'state ='ERR' AND (direction = 1 OR (vdewtype <> 'CONTRL' AND vdewtype <> 'APERAK')) '\]}

Implementierung eines eigenen Arbeitsvorrat-Providers

Das Modul “Arbeitsvorräte” ist als Flex-Projekt “org.b2bbp.admin.modules.inbox” realisiert. Es stellt Schnittstellen zur Verfügung, die ein Arbeitsvorrat-Provider implementieren muss. Ein Arbeitsvorrat-Provider (z.B. “org.b2bbp.admin.modules.msgmon”) ist üblicherweise abhängig von der Hauptanwendung (Flex-Projekt “org.b2bbp.admin”) und dem o.g. Flex-Projekt für das Modul “Arbeitsvorräte”.

Schnittstellen

Ein Arbeitsvorrat-Provider muss folgende Schnittstellen implementieren:

IInboxViewProvider

  • isDefaultViewDefinitionLoadMechanism(): Boolean
  • getInboxViewDefinitionType(): String
  • createInboxView(viewDefintion:InboxViewDefinition): IInboxView

Das Modul “Arbeitsvorräte” stellt einen Standardmechanismus für das Laden der Konfiguration für Arbeitsvorrat-Sichten (sog. InboxViewDefinition) zur Verfügung. Der Mechanismus liefert ID, Beschriftung und Start-Parameter für die einzelnen Sichten. Die Funktionsweise ist im Kapitel “Konfiguration > Arbeitsvorräte für den Nachrichten-Monitor definieren” beschrieben.

Wenn der eigene Arbeitsvorrat-Provider den Standardmechanismus nutzen soll, so muss die Methode isDefaultViewDefinitionLoadMechanism() TRUE liefern und getInboxViewDefinitionType() den Typ, mit dem die Definitionen angelegt wurden (z.B. “MSGMON”).

Die Methode createInboxView erzeugt den Inhalt des Arbeitsvorrat-Tabs. Die Sicht auf den Arbeitsvorrat muss die Schnittstelle IInboxView implementieren und gleichzeitig ein DisplayObject sein.

Der Tab-Titel wird über das Attribut “label” der Komponente bereit gestellt:

<mx:HBox xmlns:mx=”http://www.adobe.com/2006/mxml”   xmlns:adobe=”http://www.adobe.com/2006/fc“                                                            name=”InboxTestMonitor” implements=”org.b2bbp.ui.inbox.views.IInboxView” label=”{viewDefinition.title}”>   

IInboxView

  • getId(): String
  • show(): void
  • refresh(): void
  • remove(): void

Die Methode getId()liefert eine eindeutige ID für den Arbeitsvorrat. Diese ID sollte mit dem Prefix für den Arbeitsvorrat-Provider beginnen (z.B. MSGMON_), um Eindeutigkeit über alle Arbeitsvorräte hinweg von verschiedenen Providern zu gewährleisten. Wenn der Standard-Mechanismus zum Laden der Arbeitsvorrat-Definitionen genutzt wird, dann kann die ID der InboxViewDefinition geliefert werden:

public function getId(): String { return this.viewDefinition.viewId; }

Die Methode show()wird vom Inbox-Framework immer dann aufgerufen, wenn der Arbeitsvorrat angezeigt wird (Benutzer klickt auf den Tab).

Die Methode refresh()wird vom Inbox-Framework aufgerufen, wenn der entsprechende Arbeitsvorrat aktuell sichtbar ist und der Anwender den “Aktualisieren” Button drückt.

Die Methode remove()wird vom Inbox-Framework aufgerufen, wenn der entsprechende Arbeitsvorrat vom Benutzer geschlossen wird.

Eigener Lademechanismus für Arbeitsvorrat-Konfigurationen

Die Konfiguration für Sichten auf Arbeitsvorräte (InboxViewDefinition) kann unabhängig vom angebotenen Standard-Mechanismus implementiert werden. Die Methode isDefaultViewDefinitionLoadMechanism()des InboxViewProviders muss in diesem Fall den Wert FALSE liefern.

Die Arbeitsvorräte werden der Inbox als ArrayCollection von InboxViewDefinition-Objekten über einen InboxEvent (ADD_VIEW_DEFINITIONS) mitgeteilt. Bsp.:

private function loadInboxViewDefinitions() : void

{

  var inboxViewDefinitions:ArrayCollection = new ArrayCollection();

       

  var inboxViewDef1:InboxViewDefinition = new InboxViewDefinition();

  inboxViewDef1.viewId = "TSTMON\_dummy1";

  inboxViewDef1.title = "Dummy 1";

  inboxViewDef1.params = new Object();

  inboxViewDef1.params\["sysNr"\] = "9911154000008";

  inboxViewDef1.params\["channel"\] = "INBOUND";                      

  inboxViewDef1.provider = this;

  inboxViewDefinitions.addItem( inboxViewDef1 );

 

  var inboxViewDef2:InboxViewDefinition = new InboxViewDefinition();

  inboxViewDef2.viewId = "TSTMON\_dummy2";

  inboxViewDef2.title = "Dummy 2";

  inboxViewDef2.params = new Object();

  inboxViewDef2.params\["refNr"\] = "W1228113498182";

  inboxViewDef2.params\["vdewType"\] = "UTILMD"; 

  inboxViewDef2.provider = this;

  inboxViewDefinitions.addItem( inboxViewDef2 );

       

  CairngormEventDispatcher.getInstance().dispatchEvent( new InboxEvent(

     InboxEvent.ADD\_VIEW\_DEFINITIONS, inboxViewDefinitions, this ));

}

Der Event “ InboxEvent.ADD_VIEW_DEFINITIONS “ hat zwei Parameter:

  • Liste der InboxViewDefinition-Objekte als ArrayCollection
  • Referenz auf den InboxViewProvider (this)

  Formularbeginn

Formularende

 

 

View Me   Edit Me