Grundlegende Informationen zu Personaleinsatzplanung & Projektmanagement finden Sie unter Erste Schritte PEP.| Parameter | Beschreibung |
| 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. |
![]() | Die Funktion kann sowohl in einer Formel als auch im Makro verwendet werden. Zugrundeliegende Stakeholderinformationen: ![]() ![]() Formeltext für Spalte "MAZ-Mitarbeiter #1": ![]() Formeltext für Spalte "MAZ-Mitarbeiter #2": ![]() |
![]() | // 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); |
| 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
| ||
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 |
![]() | Definition der Benachrichtigung ![]() 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. ![]() // Anmerkung: Es können mehrere Benachrichtigungen wie folgt ausgelöst werden: lVobs := '1379238786000100550, 1379251302000100520'; |
![]() | In Makro-Auslöser kann z. B. die Bedingung ermittelt werden:
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; |
![]() | 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 |
| Parameter | Beschreibung |
| Menge | Jene 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. |
| Hauptfirma | Hauptfirma (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. |
![]() | Übergabe folgender Parameter an die Formelfunktion, welche im Fenster "Einsätze" hinterlegt ist: ![]() ![]() 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. ![]() |
![]() | Für die Übergabe dieser Formel kann unter anderem auch folgende Formelfunktion interessant sein: ![]() Die Formel, die dafür verwendet wird, sieht folgendermaßen aus: ![]() |
![]() | Das Beispiel zeigt, wie für das Einstiegsfeld "KW" das Startdatum der ausgewerteten Kalenderwoche ermittelt werden kann. ![]() Formeldefinition: ![]() |
| Parameter | Beschreibung |
| 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. |
![]() | Die Funktion "GET_MA_KAPA_ASYNC" kann in Listen verwendet werden, die Funktion "GET_MA_KAPA" in Auswertungen. |
![]() | 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 ![]() Formel für die Ermittlung der geplanten Kapazitäten ![]() 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 ![]() Die 43,16 geplanten Stunden für Mitarbeiter "Jansen" im Oktober ermitteln sich wie folgt: ![]() 3 + 20 + 10,16 = 43,16 Stunden Die verfügbaren Stunden werden lt. Parameter von der Soll-Arbeitszeit ermittelt: ![]() |
| Parameter | Beschreibung |
| STP_PRO_COMPANYNO | Firmennummer des Zielprojekts (auf das die Scorecard kopiert werden soll) |
| STP_PRO_PROJECTNO | Projektnummer des Zielprojekts |
| STP_PRO_PROJECTTYPE | Projekttyp des Zielprojekts |
| STP_PRO_BASECOMPANYNO | Firmennummer 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 |
![]() | // ============================================== // 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: ![]() |
| Parameter | Beschreibung |
| PRO_PROJEKTID | Projekt-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) |
![]() | Falls für das Zielprojekt bereits ein Projektplan existiert, wird eine Abfrage ausgegeben, ob der bestehende Projektplan gelöscht werden soll. |
![]() | // ============================================== // 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. ![]() |
![]() | Für den folgenden Einsatz wird die Funktion "Einlasten" aufgerufen: ![]() ![]() 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: ![]() "SAnfang-Tg" sowie "SEnde-Tg" wurden durch die Einlastung neu bestimmt. |
| 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 |
![]() | lEinsatz := MacroObject.CreateMacroModel('TBMDMDPepEeAgMgr'); lVgId := lEinsatz.GetValue('MCA_PCK_PPSKAPAID'); lParams := BMD_CONCAT('PCK_PPSKAPAID=', lVgId); BMD_STARTFUNCTION('MCS_FRMPEPSHOWALLGAP', lParams); ![]() 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: ![]() |
![]() |