UebergeordnetesD.bmp Grundlegende Informationen zu Personaleinsatzplanung & Projektmanagement finden Sie unter Erste Schritte PEP.


 Übersicht

Makrofunktionen aus dem Bereich der Personaleinsatzplanung und des Projektmanagements werden nachfolgend beschrieben.
 

 Stakeholderdaten auslesen  

BMD_PEP_GET_STAKE_DATA(<Projekt-Typ>,<Projekt-FirmenNr>,<ProjektNr>,<Stakeholdertyp>,<Pos>,'<MCA_FELD>',<Modus>); 

ParameterBeschreibung 
Projekttyp
Definiert, ob Vorlage oder "normales" Projekt.
Entspricht MCA_PRO_PROJEKTTYP
Projekt-FirmenNr
Firmennummer des Projekts
Entspricht MCA_PRO_PROJEKTFIRMENNR
ProjektNr 
Projektnummer
Entspricht MCA_PRO_PROJEKTNR
Stakeholdertyp
Nummer des Stakeholdertyps
Entspricht MCA_STT_TYPNR
Pos 
Bestimmt den x-ten Eintrag für den ausgewählten Stakeholdertypen, der ausgewertet werden soll.
MCA-Feld
Feld, das von der Stakeholderinformation ausgelesen werden soll. 
Es können Personen (Tabelle PER) und Stakeholder (Tabelle STH) ausgewertet werden.
Modus
0 ..... DisplayValue
1 ..... Value
10 ... Asynchron-DisplayValue
11 ... Asynchron-Value 

Asynchrone Modi können z. B. in der Einsatzlistung verwendet werden.

Beispiel 
Beispiel.png
Die Funktion kann sowohl in einer Formel als auch im Makro verwendet werden.

Zugrundeliegende Stakeholderinformationen:

1365428357000003930_1.png

1365428357000003930.png

Formeltext für Spalte "MAZ-Mitarbeiter #1":

1365428357000003930_0.png

Formeltext für Spalte "MAZ-Mitarbeiter #2":

1365428357000003930_2.png

 Vorgang-LEA-Aufrollung

BMD_PEP_VG_LEA_AUFROLLEN (Liste);

Das Makro für die Vorgang-LEA-Aufrollung dient der Neuermittlung der Vorgangsdaten, für welche Leistungen (= MA-Aufzeichnungen) die Basis sind. Das Makro entspricht der Stapelfunktion VG-LEA-Aufrollung.
 
Beispiel 
Beispiel.png
// Es wird zuerst die Makrostringlist generiert und diese dann an die Aufroll-Funktion übergeben.

lList := MacroObject.CreateMacroStringList('VgIds');
lList.Add ('123456789012345');
lList.Add ('123456789012346');
Result := BMD_PEP_VG_LEA_AUFROLLEN (lList);

 Benachrichtigung auslösen

BMD_PEP_FIRE_VOB(<VG-ID>,'VOB-ID','Information','Mailadresse',<Sofort versenden>); 
 
Beschreibung der Makroparameter:

Parameter Beschreibung 
VG-ID Jene Vorgang-ID, für welche die Benachrichtigung ausgelöst werden soll. 
VOB-ID 
Die ID der Benachrichtigung, die ausgelöst werden soll.

Es können auch mehrere IDs erfasst werden - diese sind mittels Beistrich zu trennen.
Information 
Hier kann ein Text vergeben, welcher im Bereich <Info> der Mail angezeigt wird.

Wenn dieser Übergabewert leer ist, wird der Text "Der Einsatz wurde zur Benachrichtigung ausgelöst." verwendet.

Hinweis zur Verwendung
Hinweis.png

Damit der Text in der E-Mail aufscheint, müssen folgende Einstellungen korrekt getroffen sein:
  • Das Feld "Auslöser" auf der ausgelösten Benachrichtigung muss auf "Extern ausgelöst" stehen.

  • Im E-Mail-Text muss der Bereich "UserInfo" enthalten sein (siehe dazu Hinweistext lt. Benachrichtigung im Dokument "PEP: Gestalten der Benachrichtigungstexte").
Mailadresse 
Hier kann eine zusätzliche E-Mail-Adresse definiert werden, an welche die Benachrichtigung geschickt werden soll.
Sofort versenden 
0 = Mail wird im Outlook geöffnet (Standard)
1 = Mail wird sofort versendet

Beispiel 
Beispiel.png
Definition der Benachrichtigung

1379505281000002030_2.png

Makro zum Auslösen der Benachrichtigung:

//==============================================
// Erstelldatum : 07.01.2020 08:26:23
// Ersteller : BMDWWS#1
// Eingerichtet von/am :
// Beschreibung : Aktionsmakro zur Funktion Neu (MCS_MDPPSDELAYBREAKDOWNMGR_NEW)
// im Fenster Betriebsmeldungen (MCS_MDPPSDELAYBREAKDOWNMGR_CREATE)
//==============================================

// IDs der Benachrichtigungen:
//1379238786000100550
//1379251302000100520  

lVobs := '1379238786000100550, 1379251302000100520';

lMeldung := MacroObject.CreateMacroModel('1');  //CreateMacroModel
lVgId := lMeldung.GetValue('MCA_IDP_PPSKAPAID');                          

if lVgId <> '' then begin
    BMD_PEP_FIRE_VOB(lVgId, lVobs, 'Es wurde eine Betriebsmeldung erfasst.', 'bmd@bmd.at', 0)
end;                      

Hier der E-Mail-Vorschlag für den Versand an die zusätzlich definierte E-Mail-Adresse.

1379505281000002030_1.png

// Anmerkung: Es können mehrere Benachrichtigungen wie folgt ausgelöst werden:
lVobs := '1379238786000100550, 1379251302000100520';

 Makro durch Benachrichtigung auslösen

Mithilfe der Felder Makro-Event und Makro-Auslöser können Bedingungen definiert und Makros dadurch ausgelöst werden, wenn z. B. eine E-Mail als Benachrichtigung nicht ausreicht.

Beispiel für Makro-Auslöser 
Beispiel.png

In Makro-Auslöser kann z. B. die Bedingung ermittelt werden:
  • Alle Vorgänge, die einem Produktionslos zugeordnet sind,
  • für die eine Datumsdifferenz zwischen SAnfang (Vorgang) und Kommissionstermin (Auftrag) größer 0 vorliegt
  • und es sich um kein Angebot handelt.
Für die erfüllte Bedingung kann dann ein bestimmtes Makro-Event ausgelöst werden.

Makro für Makro-Auslöser:

lPLos :=  MCA_PCK_PCHARGENID;
       
if (lPLos <> ''") then begin                       
    lSEnde := MCA_PCK_SOLL_ENDE;     

    lQuery := MacroObject.CreateMacroQuery('auf');
    lQuery.setSQLText('select VPP_WWSERF_KZ, VPP_PCHARGE, VPP_WWSERF_NR, VPP_WWSERFPOS_KOMTERMIN from PRODUKTION.VPP_VIEW_PLC_PPS_CHARGE where VPP_PCHARGENID = :VPP_PCHARGENID');
    lQuery.setParamAsString('VPP_PCHARGENID',lPLos);
    lQuery.Open();
                
    lErfKz := lQuery.getAsString('VPP_PCHARGE');
    lKomTermin := lQuery.getAsString('VPP_WWSERFPOS_KOMTERMIN');
    lQuery.Close();                         
   
    result:= (lErfKz <> 'ANG') and (BMD_DATEDIFF(lKomTermin,lSEnde) < 0);          
end else begin
    Result := FALSE;
end; 
   
Beispiel für Makro-Event 
Beispiel.png

Wenn die Bedingung lt. Makro-Auslöser zutrifft, soll eine Aufgabe für den Ersteller des Produktionsloses mit Info bezüglich des Auftrages angelegt werden, dass diese Information an den Kunden weitergegeben werden kann.

Result := true;              
                       
    lFirmenNr :=  MCA_PCK_FIRMENNR; 
    lPLos :=  MCA_PCK_PCHARGENID;
    lErfassNr :=  MCV_VPP_WWSERF_NR;
    lErstellUser := MCA_PCK_ERSTELLUSER;
    lSEnde := MCA_PCK_SOLL_ENDE;
     
    lQuery := MacroObject.CreateMacroQuery('auf');
    lQuery.setSQLText('select VPP_WWSERF_KZ, VPP_PCHARGE, VPP_WWSERF_NR, VPP_WWSERFPOS_KOMTERMIN from PRODUKTION.VPP_VIEW_PLC_PPS_CHARGE where VPP_PCHARGENID = :VPP_PCHARGENID');
    lQuery.setParamAsString('VPP_PCHARGENID',lPLos);
    lQuery.Open();
    lErfKz := lQuery.getAsString('VPP_PCHARGE');
    lPLosNr := lQuery.getAsString('VPP_WWSERF_NR');
    lErfNr := lQuery.getAsString('VPP_WWSERF_NR');
    lKomTermin := lQuery.getAsString('VPP_WWSERFPOS_KOMTERMIN');
    lQuery.Close();     
                    
    //Mitarbeiterermittlung
    lQuery := MacroObject.CreateMAcroQuery('get');
    lQuery.setSQLText('SELECT MIT_FIRMENNR, MIT_MITARBEITERID FROM BUERO.MIT_MITARBEITER WHERE MIT_BMDUSERID = :lErstellUser ');
    lQuery.setParamAsString('lErstellUser',lErstellUser);
    lQuery.Open();
    lMitFirmenNr := lQuery.getAsString('MIT_FIRMENNR');
    lMitId := lQuery.getAsString('MIT_MITARBEITERID');
    lQuery.Close();
                       
    // Aufgabe anlegen                      
    BMD_Task := CRMMacroObject.CreateTaskMgr('Auftrag');  //CreateTaskMgr               
    BMD_Task.New();  //New                                                            
    BMD_Task.SetCaption('Lieferterminänderung!');  //SetCaption
    BMD_Task.SetEmployee(lMitFirmenNr,lMitId);  //SetEmployee
    lTxt :=  'Bei folgendem Auftrag gibt es eine Lieferterminverschiebung '+lErfNr+'
    Neuer Liefertermin lt. Produktion: (Kommissionstermin): '+lSEnde+'.
    Alter Liefertermin lt. Produktion (Kommissionstermin): '+lKomTermin+'
    Bitte Kommissionstermin am Kundenauftrag anpassen und AB neu drucken!';
    BMD_Task.SetText(lTxt);  //SetText                
    BMD_Task.Save();  //Save

 Aliquoten Stundenanteil ermitteln

WERT_ALLIQUOT_PLP(<Menge>,<Startdatum>,<Endedatum>,<Hauptfirma>,'Planungsperiode',<Referenzdatum>,<Planungseinheit>)
 
Diese Funktion kann in Formeln und Makros verwendet werden, um den Anteil einer Dauer (beispielsweise Soll-Durchführungszeit) in einer Rastereinheit einer Planungsperiode zu ermitteln. Dabei können folgende Parameter übergeben werden:

ParameterBeschreibung
MengeJene Dauer, die aufgeteilt werden soll.
Startdatum 
Beginndatum jenes Zeitraums, in dem die Dauer anfällt.
Es wird das Datum als String erwartet.
Endedatum 
Endedatum jenes Zeitraums, in dem die Dauer anfällt.
Es wird das Datum als String erwartet.
HauptfirmaHauptfirma (für Planungsperiode)
Planungsperiode 
Jene Planungsperiode
Referenzdatum 
Übergabe jenes Datums, anhand dessen der passende Raster der Planungsperiode ermittelt wird.
Es wird das Datum als String erwartet.
Planungseinheit 
Die wievielte Rastereinheit der Planungsperiode (ausgehend vom Referenzdatum) soll ausgewertet werden.
 
Beispiel #1 - fixe Übergabe gewisser Parameter 
Beispiel.png

Übergabe folgender Parameter an die Formelfunktion, welche im Fenster "Einsätze" hinterlegt ist:

1381000397000006610.png

1381000397000006610_0.png

Anmerkung: Da die Soll-Durchführungszeit-Mitarbeiter in Sekunden übergeben wird, muss der Rückgabewert durch 3600 dividiert werden, um die Dauer in Stunden (Industrieformat) zu erhalten.

1381000397000006610_2.png

Beispiel #2 - "Dynamische" Übergabe Parameter  
Beispiel.png

Für die Übergabe dieser Formel kann unter anderem auch folgende Formelfunktion interessant sein:

1381051394000004320_0.png

Die Formel, die dafür verwendet wird, sieht folgendermaßen aus:

1381051394000004320_1.png

 Jahr und Kalenderwoche als Datum ausgeben

PEP_ENCODE_DATE_WEEK(<Jahr>,<Woche>) 

Liefert anhand der übergebenen Parameter "Jahr" und "Woche" den ersten Tag der entsprechenden Kalenderwoche als Datum zurück.
 
Beispiel 
Beispiel.png
Das Beispiel zeigt, wie für das Einstiegsfeld "KW" das Startdatum der ausgewerteten Kalenderwoche ermittelt werden kann.

1381051999000004320_0.png

Formeldefinition:

1381051999000004320_1.png

 Mitarbeiterkapazitäten laden

GET_MA_KAPA_ASYNC(<Art>,<MA-Firma>,'MA-ID',<Firma>,'ProzessNr',<Von Zeit>,<Bis Zeit>)
bzw.
GET_MA_KAPA(<Art>,<MA-Firma>,'MA-ID',<Firma>,'ProzessNr',<Von Zeit>,<Bis Zeit>)

Mit dieser Funktionen können Kapazitätsinformationen für einen Mitarbeiter geladen werden.

Die für die Funktion zu übergebenden Parameter lauten:

ParameterBeschreibung
Art
11 ... dient zur Ermittlung der verfügbaren Kapazität. Welche Zeile aus der Kapazitätsberechnung verwendet wird, wird über den Parameter Mitarbeiter-Planung: Kapazitätsvergleich gesteuert.
21 ... dient zur Ermittlung der geplanten Kapazitäten.
MA-Firma
Firmennummer des auszuwertenden Mitarbeiters
MA-ID
Personen-ID des auszuwertenden Mitarbeiters
Firma
Firma, für welche die Kapazitäten ausgewertet werden.

Dabei ist relevant, in welcher Firma die verfügbaren bzw. geplanten Kapazitäten erzeugt werden – dies kann wiederum über die folgenden Parameter gesteuert werden:

PEP → Stammdaten → Einstellungen → PEP Parameter → PEP & PM – Allgemein/BDE/KM
- Mitarbeiterplanung: Firma (in der Gruppe "MA verfügbare Kapazitäten")
- Firmen-Nr. ermitteln (in der Gruppe "Einsätze")
- Firmen-Nr. ermitteln (in der Gruppe "Projektplan")
- Firmen-Nr. ermitteln (in der Gruppe "Planungsobjekte")

Als Parameter kann auch die Firmengruppe übergeben werden, dann werden die Kapazitäten aller der Firmengruppe zugeordneten Firmen ausgewertet.
ProzessNr
Dient zum Einschränken der Ermittlung auf einen bestimmten Prozess.
Dieses Feld kann auch leer bleiben.
Von/Bis Zeit
Zur Einschränkung des Zeitbereichs, der ausgewertet werden soll.

Hinweis zur Verwendung der beiden Funktionen 
Hinweis.png

Die Funktion "GET_MA_KAPA_ASYNC" kann in Listen verwendet werden, die Funktion "GET_MA_KAPA" in Auswertungen.

Beispiel 
Beispiel.png
Die Formelfunktion kann unter anderem dazu verwendet werden, im Reiter "MAZ-Matrix" die verfügbaren, geplanten sowie freien Kapazitäten eines Mitarbeiters darzustellen.

Formel für die Ermittlung der verfügbaren Kapazitäten

1450010846000009210.png

Formel für die Ermittlung der geplanten Kapazitäten

1450010846000009210_0.png

Anmerkung: Um die freien Kapazitäten darzustellen, können die Ergebnisse der beiden Formeln in einer Formel subtrahiert werden: verfügbar minus geplant

Darstellung der Kapazitäten

1450010846000009210_2.png

Die 43,16 geplanten Stunden für Mitarbeiter "Jansen" im Oktober ermitteln sich wie folgt:

1450010846000009210_3.png

3 + 20 + 10,16 = 43,16 Stunden

Die verfügbaren Stunden werden lt. Parameter von der Soll-Arbeitszeit ermittelt:

1450010846000009210_4.png

 Scorecard kopieren

BMD_STARTFUNCTION('MCS_PEP_DEEPCOPY_PROJEKT_ADDONS_SC', lParams);
 
Mit dieser Funktion kann eine bestehende Scorecard von einem Projekt auf ein anderes Projekt kopiert werden.

Die für die Funktion notwendigen Parameter lauten:

ParameterBeschreibung
STP_PRO_COMPANYNOFirmennummer des Zielprojekts (auf das die Scorecard kopiert werden soll)
STP_PRO_PROJECTNO
Projektnummer des Zielprojekts
STP_PRO_PROJECTTYPE
Projekttyp des Zielprojekts
STP_PRO_BASECOMPANYNOFirmennummer des Quellprojekts (jenes Projekts, für das bereits eine Scorecard existiert und dessen Scorecard übernommen werden soll)
STP_PRO_BASEPROJECTNO
Projektnummer des Quellprojekts
PEP_DC_PROJEKT_COPY_MODE
Kopiermodus, steuert, von welcher Quelle die Scorecard kopiert werden soll.

2 ... Von Projektvorlage
3 ... Von Vorgängerprojekt
4 ... Von anderem Projekt
5 ... Von anderer Vorlage 

Beispiel 
Beispiel.png
// ==============================================
// Erstelldatum : 25.02.2022
// Ersteller : BMDWWS#1
// Beschreibung : Fenstermakro im Fenster Projektliste (MCS_FRMPROJEKT_CREATE)
// ==============================================
                                          
lZielProFirmenNr  := '1';
lZielProjektNr    := '8';
lZielProjekttyp   := '1';                                          
lQuellProFirmenNr := '1';
lQuellProjektNr   := '900000';
lKopiermodus      := '5';

// Kopiermodus
//  2 ... Von Projektvorlage
//  3 ... Von Vorgängerprojekt
//  4 ... Von anderem Projekt
//  5 ... Von anderer Vorlage   
                              
lParams :=  'STP_PRO_COMPANYNO='        + lZielProFirmenNr     + ',' +
            'STP_PRO_PROJECTNO='        + lZielProjektNr       + ',' +
            'STP_PRO_PROJECTTYPE='      + lZielProjekttyp      + ',' +
            'STP_PRO_BASECOMPANYNO='    + lQuellProFirmenNr    + ',' +
            'STP_PRO_BASEPROJECTNO='    + lQuellProjektNr      + ',' +
            'PEP_DC_PROJEKT_COPY_MODE=' + lKopiermodus; // 5 dcpmVonAndererVorlage

BMD_STARTFUNCTION('MCS_PEP_DEEPCOPY_PROJEKT_ADDONS_SC', lParams);  

Es wurde die Scorecard von der Vorlage auf das Projekt 8 übernommen:

1446639387000000560.png

 Projektplan kopieren

BMD_STARTFUNCTION('MCS_MDPEPPRJAPMGR_DEEPCOPY', lParams);    
 
Mit dieser Funktion kann ein bestehender Projektplan von einem Projekt auf ein anderes Projekt kopiert werden.

Die für die Funktion notwendigen Parameter lauten:

ParameterBeschreibung
PRO_PROJEKTIDProjekt-Id des Zielprojekts (auf das der Projektplan kopiert werden soll)
APA_FIRMENNR
Firmennummer des Zielprojekts
PPLAN_VON
Fixer Wert "VORLAGE"
OHNE_DIALOG
Steuert, ob das Dialogfenster zur Projektplanübernahme geöffnet werden soll.
Wert 0 ... Das Dialogfenster wird geöffnet. Es wird vorbelegt, von welchem Projekt der Projektplan übernommen werden soll.
Wert 1 ... Das Dialogfenster wird nicht geöffnet.
APA_NEU_MAKRO
Steuert, ob die Makros die für die Projektplanübernahme hinterlegt sind, ausgeführt werden sollen.
Wert 0 ... Die Makros werden nicht ausgeführt.
MIT_TRANSAKTION
Fixer Wert 1
APA_SOLL_START
Übergibt den Soll-Start für das Zielprojekt.
PRO_VORLAGE_PROJEKTID
Projekt-Id des Quellprojekts (von dem der Projektplan kopiert werden soll)
 
Hinweis 
Hinweis.png
Falls für das Zielprojekt bereits ein Projektplan existiert, wird eine Abfrage ausgegeben, ob der bestehende Projektplan gelöscht werden soll.
Beispiel 
Beispiel.png
// ==============================================
// Erstelldatum : 25.02.2022
// Ersteller : BMDWWS#1
// Beschreibung : Fenstermakro im Fenster Projektliste (MCS_FRMPROJEKT_CREATE)
// ==============================================
                  
lZielProjektId   := BMD_GETDBVALUE('MCA_PRO_PROJEKTID');
lZielProFirmenNr := BMD_GETDBVALUE('MCA_PRO_FIRMENNR');                  
lStartdatum      := BMD_DATE()
lQuellProjektId  := '482452889280161'; // Id der Projekt-Vorlage

lParams := 'PRO_PROJEKTID='         + lZielProjektId + ',' +
           'APA_FIRMENNR='          + lZielProFirmenNr + ',' +
           'PPLAN_VON=VORLAGE,' + 
           'OHNE_DIALOG=1,' +            
           'APA_NEU_MAKRO=1,' +                    
           'MIT_TRANSAKTION=1,' +           
           'APA_SOLL_START='        + lStartdatum + ',' +
           'PRO_VORLAGE_PROJEKTID=' + lQuellProjektId;
          
BMD_STARTFUNCTION('MCS_MDPEPPRJAPMGR_DEEPCOPY', lParams);  

Auf das Projekt 100 wird der Projektplan von der Vorlage kopiert.

1446640436000000560.png

 Vorgang einlasten

Die Funktion Einlasten eines Vorgangs kann auch über Makro aufgerufen werden. Die dafür notwendigen Parameter können aus dem Dialogfenster "Einlasten" über das Funktionsmenü unter "Extras" in die Zwischenablage kopiert werden. Diese werden dann als Einlastparameter der Makrofunktion übergeben.

Der Aufruf ist beispielsweise möglich als Aktionsmakro nach Bearbeiten eines Vorgangs/Einsatzes. Der Vorgang/Einsatz darf sich nicht im Neuanlage- oder Bearbeiten-Modus befinden.

Alternativ kann mit WwsPpsMacroClasses.CreateVorgang(/*MC_ des Modells*/) ein Vorgangsmodell erzeugt werden. Nachdem ein entsprechender Dataset geladen worden ist, kann DsDisptach auf diesen aufgerufen werden, damit kann man die Funktion auch unabhängig von einem Fenster ausführen.

Beispiel als Fenstermakro im Fenster "Einsätze" 
Beispiel.png

Für den folgenden Einsatz wird die Funktion "Einlasten" aufgerufen:

1473186422000004380_4.png

1473186422000004380_0.png

Ergebnis in der Zwischenablage:

"DispatchFunction=pdfPlc;DispatchMode=5;DispatchDateType=pddNone;DispatchDate=44986;DispatchDateRev=-1;
SingleVgElTyp=-1;DispatchRelative=pdrNone;ApplyOn=1;ConcatDate=False;Manual=False;DispatchCombined=False;
ResetOverride=True;DispatchUnplaned=False;DispatchDateRel=0;DispatchDateRevRel=0;DispatchPpc=True;
DispatchOp=True;SaveToExpected=False;ResetFixed=False;DispatchActive=True"

Im Fenster "Einsätze" wurde dann dieses Fenstermakro erstellt, das dann im Anschluss für den ausgewählten Einsatz ausgeführt wird.

Anmerkung: Unten wurde aus Gründen der einfacheren Lesbarkeit, die Definition der Einlastparameter auf mehrere Zeilen aufgeteilt.

// ==============================================
// MacroNo : 249544014346809
// Erstelldatum : 29.12.20XX
// Ersteller : BMDWWS
// Eingerichtet von/am : BMDWWS, 29.12.20XX
// Beschreibung : Fenstermakro im Fenster Einsätze (MCS_FRMPEPEEAGMGR_CREATE)
// ==============================================

lDispatchParams := 'DispatchFunction=pdfSingle;DispatchMode=5;DispatchDateType=pddNone;';
lDispatchParams := lDispatchParams + 'DispatchDate=44986;DispatchDateRev=-1;SingleVgElTyp=-1;DispatchRelative=pdrVp;
ApplyOn=0;';
lDispatchParams := lDispatchParams + 'ConcatDate=False;Manual=False;DispatchCombined=False;ResetOverride=True;
DispatchUnplaned=False;';
lDispatchParams := lDispatchParams + 'DispatchDateRel=0;DispatchDateRevRel=0;DispatchPpc=True;DispatchOp=True;
SaveToExpected=False;';
lDispatchParams := lDispatchParams + 'ResetFixed=False;DispatchActive=True';

lEinsatz := MacroObject.CreateMacroModel('TBMDMDPepEeAgMgr');
lVorgang := WwsPpsMacroClasses.CreateVorgang2(lEinsatz);
lVorgang.DsDispatch(lDispatchParams);

Das Ergebnis am Einsatz nach Ausführen des Makros:

1473186422000004380_5.png

"SAnfang-Tg" sowie "SEnde-Tg" wurden durch die Einlastung neu bestimmt.

 Einsatz/Vorgang anzeigen

BMD_STARTFUNCTION('MCS_FRMPEPSHOWALLGAP', lParams);  

Die Eigenschaft, ob das Fenster modal gestartet wird, wird nicht berücksichtigt. Ist eine Person zugeordnet, wird eine Personenzuordnungsansicht ("Einsätze/Mitarbeiter") gestartet.

BMD_STARTFUNCTION('MCS_FRMPEPSHOWALLGAG', lParams); 

Die Übergabe, ob das Fenster modal gestartet werden soll, wird berücksichtigt. Es wird eine Einsatz/Vorgang-Ansicht gewählt, unabhängig davon, ob Personen zugeordnet sind.

Mit dieser Funktion und der Übergabe der Vorgangs-ID wird ein Detailfenster zum Ansehen des Einsatzes/Vorgangs geöffnet.

Parameter Beschreibung Übergabeart 
PCK_PPSKAPAID Vorgang/Einsatz, der angezeigt werden soll. Entspricht der Vorgangs-ID des jeweiligen Datensatzes Zwingend 
STP_SHOWMODAL Kann bei 'MCS_FRMPEPSHOWALLGAG' mit übergeben werden und steuert, ob das Fenster modal geöffnet wird.Optional

Welches Fenster dabei geöffnet wird, hängt vom Plantyp des jeweiligen Einsatzes/Vorgangs ab.

Beispiel 
Beispiel.png

lEinsatz := MacroObject.CreateMacroModel('TBMDMDPepEeAgMgr');
lVgId := lEinsatz.GetValue('MCA_PCK_PPSKAPAID');

lParams := BMD_CONCAT('PCK_PPSKAPAID=', lVgId);
BMD_STARTFUNCTION('MCS_FRMPEPSHOWALLGAP', lParams);

1485340611000004270_0.png

bzw.

lParams := BMD_CONCAT('STP_SHOWMODAL=1,PCK_PPSKAPAID=', lVgId);
BMD_STARTFUNCTION('MCS_FRMPEPSHOWALLGAG', lParams);  // die Übergabe, ob das Fenster modal gestartet werden soll wird berücksichtigt.

Modal geöffnetes Fenster:

1485340611000004270.png


1097582601000001570.png