Arbeitszeit: Unterschied zwischen den Versionen

Aus Asprova Hilfe
Wechseln zu: Navigation, Suche
(Imported from text file)
 
(GetNearestWorkingStartTime( resource, date, dir ))
 
(31 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
{{DISPLAYTITLE:Arbeitszeit}}
 
{{DISPLAYTITLE:Arbeitszeit}}
 
<div align="right">Hilfe Nummer: 741540</div>
 
<div align="right">Hilfe Nummer: 741540</div>
<div align="right">[[Interne Funktionen|Interne Funktionen]]</div>
+
<div align="right">[[Interne Funktionen]]</div>
<div align="right">[[Formeleditor|Formeldialog]]</div>
+
<div align="right">[[Formeleditor]]</div>
 
<hr>
 
<hr>
Interne Funktion, die mit der Arbeitszeit verbunden ist.
 
  
 +
Asprova stellt Ihnen die folgenden Funktionen rund um Arbeitszeiten zur Verfügung.
  
AdvanceAlongResourceWorkingTime( Ressource, Zeit, Zeitspanne )
+
== AdvanceAlongResourceWorkingTime( resouce, time, timeSpan ) ==
 
+
{| class="wikitable"
Parameter
+
|-
 
+
!rowspan="3"|Parameter
 
+
|''resource''||Ressource
{|
+
|-
 +
|''time''||Basiszeit
 +
|-
 +
|''timeSpan''||Zeitspanne
 +
|-
 +
!Rückgabewert
 +
|colspan="2"|Gibt den Zeitpunkt ''timeSpan'' nach ''time'' zurück, wobei nur die Arbeitszeiten auf ''resource'' berücksichtigt werden.
 
|-
 
|-
|   ||Ressoruce||Ressourcen Objekt|| 
+
!rowspan="2"|Beispiele
 +
|<code>AdvanceAlongResourceWorkingTime(ME.Resource,#2020/06/01 00:00:00#,24h)</code>||02/06/2020 21:00
 
|-
 
|-
||   ||Zeit||Basiszeit
+
|colspan="2"|[[Image:incodefunc-kadoujikan01.png]]<br><code>ME</code> ist hier "Mischer 1".
 
|-
 
|-
||   ||Zeitspanne||Vorlaufzeit
+
!Hinweis
 +
|colspan="2"|Hat ''timeSpan'' einen negativen Wert, so liegt der Rückgabewert vor ''time''.
 
|-
 
|-
 
|}
 
|}
  
Rückgabewert
+
== GetResourceQtyTime( resource, start, end ) ==
 
+
{| class="wikitable"
 
+
|-
{|
+
!rowspan="3"|Parameter
 +
|width="1px"|''resource''||Ressource
 +
|-
 +
|''start''||Beginn
 +
|-
 +
|''end''||Ende
 +
|-
 +
!Rückgabewert
 +
|colspan="2"|Gibt die Ressourcenanzahlzeit (Ressourcenzeit * Ressourcenanzahl) von ''resource'' zwischen ''start'' und ''end'' zurück.
 +
|-
 +
!rowspan="2"|Beispiel
 +
|<span style="white-space: nowrap;"><code>GetResourceQtyTime(ME,#2020/06/04 00:00#,#2020/06/09 00:00#)</code></span>||172800
 
|-
 
|-
|   ||Gibt die Zeit nach der Zeitspanne von der Basiszeit zusammen mit der Ressorucenarbeitszeit aus.|| 
+
|colspan="2"|[[Image:GetResourceQtyTime01.png]]<br><code>ME</code> ist hier "Mischer 1". 1*12h + 2*12h + 1*12h = 172800 (≈2d)
 
|-
 
|-
 
|}
 
|}
  
Beispiel
+
== GetWorkingDays ( start, end, resource, minTime ) ==
 
+
Die Funktion kann überladen und somit auch mit anderen Parametern genutzt werden: '''GetWorkingDays ( start, end, resource, minTime, type )'''
 
+
{| class="wikitable"
{|
+
|-
 +
|
 +
!colspan="2"|Variante 1!!colspan="2"|Variante 2
 +
|-
 +
!rowspan="5"|Parameter
 +
|''start''||Beginn||''start''||Beginn
 +
|-
 +
|''end''||Ende||''end''||Ende
 +
|-
 +
|''resource''||Ressource||''resource''||Ressource
 +
|-
 +
|''minTime''||Minimale Arbeitszeit in einem Arbeitstag||''minTime''||Minimale Arbeitszeit in einem Arbeitstag
 +
|-
 +
|colspan="2"| ||''type''||Zählweise
 +
|-
 +
!Rückgabewert
 +
|colspan="2"|Gibt die Anzahl an Arbeitszeitperioden auf ''resource'' zwischen ''start'' und ''end'' an, die mindestens ''minTime'' lang sind. Arbeitszeitperioden werden dabei mitternachts automatisch als unterbrochen angesehen.||colspan="2"| ''type'' bestimmt wie Arbeitszeitperioden gezählt werden:
 +
* 0: alle Perioden, die mindestens ''minTime'' lang sind (also wie kein Wert)
 +
* 1: Arbeitstage, d.h. je Tag maximal eine Periode, die mindestens ''minTime'' lang ist
 +
|-
 +
!rowspan="7"|Beispiele
 +
|colspan="3"|<span style="white-space: nowrap;"><code>GetWorkingDays(#2020/06/01&#160;00:00#, #2020/06/03&#160;00:00#, ME, 5h)</code></span>||2
 +
|-
 +
|colspan="4"|[[Image:incodefunc-kadoujikan02.png]]
 +
|-
 +
|colspan="3"|<code>GetWorkingDays(#2020/06/01&#160;00:00#, #2020/06/03&#160;00:00#, ME, 4h)</code>||4
 +
|-
 +
|colspan="4"|[[Image:incodefunc-kadoujikan03.png]]
 +
|-
 +
|colspan="3"|<code>GetWorkingDays(#2020/06/01&#160;00:00#, #2020/06/03&#160;00:00#, ME, 4h, 1)</code>||2
 +
|-
 +
|colspan="4"|[[Image:incodefunc-kadoujikan05.png]]
 
|-
 
|-
|   ||AdvanceAlongResourceWorkingTime(ME,#2008/06/09 00:00:00#,24h) -> #2008/06/10 21:00:00#<br /><br />ME ist Mischer1. Gibt die Zeit nach 24 Stunden von 2008/06/09 00:00:00 zusammen mit der Arbeitszeit von Mischer1 aus.|| 
+
|colspan="4"|<code>ME</code> ist hier jeweils "Mischer 1".
 
|-
 
|-
 
|}
 
|}
  
 
+
== GetWorkingTime( start, end, resource ) ==
[[Image:incodefunc-kadoujikan01.jpg]]
+
{| class="wikitable"
 
+
|-
Hinweise
+
!rowspan="3"|Parameter
 
+
|''start''||Beginn
 
+
|-
{|
+
|''end''||Ende
 +
|-
 +
|''resource''||Ressource
 +
|-
 +
!Rückgabewert
 +
|colspan="2"|Gibt die Arbeitszeit von ''resource'' zwischen ''start'' und ''end'' zurück.
 +
|-
 +
!rowspan="2"|Beispiele
 +
|<code>GetWorkingTime(#2020/06/01 00:00:00#,#2020/06/03 00:00:00#,ME)</code>||1d
 +
|-
 +
|colspan="2"|[[Image:incodefunc-kadoujikan04.png]]<br><code>ME</code> ist hier "Mischer 1".
 
|-
 
|-
|   ||Stellt das zweite Argument einen negativen Wert dar, so wird ein Zeitpunkt in der Vergangenheit ausgegeben.|| 
+
!Hinweis|
 +
|colspan="2"|Anders als bei [[#GetResourceQtyTime( resource, start, end )|GetResourceQtyTime()]] wird die Ressourcenanzahl ''nicht'' berücksichtigt.
 
|-
 
|-
 
|}
 
|}
  
 
+
== GetCalendar( res, time ) ==
&nbsp;
+
{| class="wikitable"
 
+
|-
GetResourceQtyTime( Ressrouce, Start, Ende )
+
!rowspan="2"|Parameter
 
+
|width="1px"|''res''||Ressource
Parameter
+
|-
 
+
|''time''||Zeit
 
+
|-
{|
+
!Rückgabewert
 +
|colspan="2"|Gibt das Kalenderobjekt zurück, das auf ''resource'' für den Zeitpunkt ''time'' angewendet wird.
 +
|-
 +
!rowspan="2"|Beispiele
 +
|colspan="2"|<code>GetCalendar(ME.Resource,ME.StartTime)</code>
 +
|-
 +
|colspan="2"|
 +
[[Image:getcalendar_01.png]]
 +
{| class="wikitable
 
|-
 
|-
|   ||Ressoruce||Ressourcen Objekt|| 
+
|+ Kalendertabelle
 
|-
 
|-
||   ||Start||Berechnete Startzeit
+
!style="background: #3C78AE; color:white;"|Ressource
 +
!style="background: #3C78AE; color:white;"|Darum oder<br>Wochentag
 +
!style="background: #3C78AE; color:white;"|Schicht-<br>code
 +
!style="background: #3C78AE; color:white;"|Reihen-<br>folge
 +
!style="background: #3C78AE; color:white;"|Ressourcen<br>anzahl
 +
!Vorgänge
 +
|- style="background: white"
 +
|*||Mo-Fr||Tagesschicht||align="right"|10||align="right" style="color: #4B8050;"|1||style="background:#EBEBEB"|02:10
 +
|- style="background: #DFEBF4;"
 +
|Mischer 1||02/06/2020||Tagesschicht 2||align="right"|30||align="right" style="color: #4B8050;"|1||style="background:#EBEBEB"|03:10
 +
|- style="background: white"
 +
|Mischer 1||03/06/2020||Nacht 1;Nacht 2||align="right"|30||align="right"|2||style="background:#EBEBEB"|04:10, 05:10
 
|-
 
|-
||  ||Ende||Berechnete Endzeit
+
|}
 +
<code>ME</code> ist hier "Mischer 1".
 
|-
 
|-
 
|}
 
|}
  
Rückgabewert
+
== GetShiftList( res, time, includeStart, includeEnd ) ==
 
+
{| class="wikitable"
 
+
|-
{|
+
!rowspan="4"|Parameter
 +
|width="1px"|''res''||Ressource
 +
|-
 +
|''time''||Zeit
 +
|-
 +
|''includeStart''||Definiert ob Schichten eingeschlossen werden, die genau zu ''time'' beginnen.
 +
|-
 +
|''includeEnd''||Definiert ob Schichten eingeschlossen werden, die genau zu ''time'' enden.
 +
|-
 +
!Rückgabewert
 +
|colspan="2"|Gibt die Schichtobjekte zurück, die zu ''time'' auf ''res'' angewendet werden. Über ''includeStart'' und ''includeEnd'' wird definiert, ob Schichten mit einbezogen werden, die genau um ''time'' beginnen oder enden. Bei <code>TRUE</code> werden diese einbezogen, bei <code>FALSE</code> nicht.
 +
|-
 +
!rowspan="2"|Beispiele
 +
|colspan="2"|
 +
GetShiftList( ME.Resource,
 +
              ME.StartTime,
 +
              TRUE,
 +
              TRUE
 +
            )
 +
|-
 +
|colspan="2"|[[Image:Getshift_01.png]]<br><code>ME.Resource</code> ist hier "Mischer 1".
 
|-
 
|-
|   ||Gibt die benötigte Ressorucenzeit (Arbeitszeit * Ressourcenmenge) abhängig von der berechneten Start und Endzeit aus.|| 
+
!Hinweise|
 +
|colspan="2"|
 +
* Schichten sind nach deren Beginn sortiert.
 +
* Es wird angenommen, dass die Zeiten in [Arbeitszeiten] der Schichten zwischen 00:00 und 48:0 liegen.
 +
* Liegt ''time'' in einer arbeitsfreien Zeit und der Tag ist ein Feiertag, so wird die Feiertagsschicht zurückgegeben.
 
|-
 
|-
 
|}
 
|}
  
Beispiel
+
== GetOverwriteCalendar( res, time ) ==
 
+
{| class="wikitable"
 
+
|-
{|
+
!rowspan="2"|Parameter
 +
|width="1px"|''res''||Ressource
 +
|-
 +
|''time''||Zeit
 +
|-
 +
!Rückgabewert
 +
|colspan="2"|Gibt die Kalenderausnahme zurück, die zu ''time'' auf ''res'' angewendet werden.
 +
|-
 +
!rowspan="4"|Beispiele
 +
|colspan="2"|
 +
GetOverwriteCalendar( ME.Operation.OperationMainRes,
 +
                      ME.StartTime
 +
                    )
 +
|-
 +
|colspan="2"|[[Image:GetOverwriteCalendar_01.png]]<br>Der [Nutzungsanweisungsbalkentext] zeigt die Kalenderausnahme der [Hauptressource] des Vorgangs zum [Beginn] der Aufgabe an.
 +
|-
 +
|colspan="2"|
 +
GetOverwriteCalendar( ME.TentAssignResource,
 +
                      ME.TentAssignProductionStartTime-1s
 +
                    )
 
|-
 
|-
|   ||GetResourceQtyTime(ME,#2009/06/04 00:00:00#,#2009/06/09 00:00:00#) -> 172800<br /><br />ME ist [Mischer1]. Gibt die Ressorucenzeit wischen 2009/06/04 00:00:00 und 2009/06/09 00:00:00 aus.<br />Rückgabewert ist 12H*1 + 12H*2 + 12H*1 = 172800S (48H).|| 
+
|colspan="2"|[[Image:GetOverwriteCalendar_02.png]]<br>Die [Rüstzeitanpassungsformel] bezieht während der vorläufigen Zuweisung die Kalenderausnahme eine Sekunde vor [Vorläufige Zuweisung - Produktionsbeginn] auf [Vorläufige Zuweisung - Ressource].
 
|-
 
|-
 
|}
 
|}
  
 
+
== AdvanceAlongResourceWorkingDay( resource, time, day, minTime, type ) ==
[[Image:GetResourceQtyTime01.jpg]]
+
{| class="wikitable"
 
+
|-
 
+
!rowspan="5"|Parameter
{|
+
|''resource''||Ressource||rowspan="2"|
 +
|-
 +
|''time''||Basiszeit
 +
|-
 +
|''day''||Anzahl der Arbeitstage
 +
|
 +
* positiv: in die Zukunft
 +
* negativ: in die Vergangenheit
 +
* 0: aktueller Arbeitstag
 +
|-
 +
|''minTime''||Mindestarbeitszeit, damit Tag als Arbeitstag zählt||0s wird als 1s angesehen
 +
|-
 +
|''type''||Definiton des Rückgabewerts
 +
|
 +
* 0: Tagesbeginn
 +
* 1: Beginn der Arbeitszeit
 +
|-
 +
!Rückgabewert
 +
|colspan="3"|Beginn des Tages (oder je nach ''type'' der Arbeitszeit) ''day'' Arbeitstage von ''resource'' nach ''time'', wobei ein Arbeitstag mindestens ''minTime'' an Arbeitszeit enthalten muss.
 +
|-
 +
!rowspan="4"|Beispiele
 +
|colspan="2"|<code>AdvanceAlongResourceWorkingDay(ME.PrevOperation.OperationMainRes, ME.PrevOperation.EndTime, 3, 8h, 1)</code>||10/06/2026 00:00
 +
|-
 +
|colspan="3"|[[Image:AdvanceAlongResourceWorkingDay.png]]
 +
|-
 +
|colspan="2"|<code>AdvanceAlongResourceWorkingDay(ME.OperationMainRes, ME.OperationProductionStartTime, -2, 0, 0)</code>||10/06/2026 00:00
 +
|-
 +
|colspan="3"|[[Image:AdvanceAlongResourceWorkingDay.png]]
 
|-
 
|-
|   ||Ist die Funktioen GetWorkingTime in Gebrauch, wird die Ressorucenzeit nicht berechnet. Ausgegeben wird 12H * 3 = 129600S (36H).|| 
+
!Hinweise
 +
|colspan="3"|
 +
* Als Tagesbeginn wird die [Tagestrennzeit] des Projekts genutzt.
 +
* Unabhängig von der Zeit in ''time'', wird der Tag von ''time'' als Arbeitstag angesehen, falls dieser ab der [Tagestrennzeit] mindestens ''minTime' an Arbeitszeit hat.
 
|-
 
|-
 
|}
 
|}
  
 
+
== GetNearestWorkingStartTime( resource, date, dir ) ==
&nbsp;
+
{| class="wikitable"
 
+
|-
GetWorkingDays ( Start, Ende, Ressoruce, MinZeit )
+
!rowspan="3"|Parameter
 
+
|''resource''||Ressource||rowspan="2"|
Parameter
+
|-
 
+
|''date''||Startzeit für die Suche
 
+
|-
{|
+
|''dir''||Richtung der Suche
 +
|
 +
* <code>TRUE</code>: in die Zukunft
 +
* <code>FALSE</code>: in die Vergangenheit
 +
|-
 +
!Rückgabewert
 +
|colspan="4"|Der erste Beginn der nächsten Arbeitszeitperiode auf ''resource'' ab ''date'' in Richtung ''dir''.
 +
|-
 +
!rowspan="8"|Beispiele
 +
!rowspan="3"|1.
 +
|colspan="2"|
 +
GetNearestWorkingStartTime( ME.Operation.OperationMainRes,
 +
                            #2026/06/01 15:00:00#,
 +
                            TRUE
 +
                          )
 +
|02/06/2026 08:00
 +
|-
 +
|colspan="2"|
 +
GetNearestWorkingStartTime( ME.Operation.OperationMainRes,
 +
                            #2026/06/01 15:00:00#,
 +
                            FALSE
 +
                          )
 +
|01/06/2026 08:00
 +
|-
 +
|colspan="3"|[[Image:GetNearestWorkingStartTime_001.png]]
 
|-
 
|-
|   ||Start||Berechnete Startzeit|| 
+
!rowspan="3"|2.
 +
|colspan="2"|
 +
GetNearestWorkingStartTime( ME.Operation.OperationMainRes,
 +
                            #2024/6/3 3:00:00#,
 +
                            TRUE
 +
                          )
 +
|03/06/2026 00:00
 
|-
 
|-
||   ||Ende||Berechnete Endzeit
+
|colspan="2"|
 +
GetNearestWorkingStartTime( ME.Operation.OperationMainRes,
 +
                            #2024/6/3 3:00:00#,
 +
                            FALSE
 +
                          )
 +
|02/06/2026 00:00
 
|-
 
|-
||   ||Ressoruce||Ressourcen Objekt
+
|colspan="3"|[[Image:GetNearestWorkingStartTime_002.png]]
 
|-
 
|-
||   ||MinZeit||Minimum Arbeitszeit ist essentiell für die Buchhaltung.
+
!3.
 +
|colspan="2"|
 +
GetNearestWorkingStartTime( PROJECT.ProductionCalendarRes,
 +
                            StartOfNextWeek( PROJECT.BasisTime,
 +
                                            1
 +
                                          ),
 +
                            TRUE
 +
                          )
 +
|Beginn der Arbeitszeit der [Werkskalenderressource] in der Woche nach der [Planungsbasiszeit].
 
|-
 
|-
|}
+
!4.
 
+
|colspan="2"|
Rückgabewert
+
GetNearestWorkingStartTime( ME.OperationMainRes,
 
+
                            ME.OperationProductionStartTime,
 
+
                            FALSE
{|
+
                          )
 +
|Beginn der Arbeitszeit auf der [Hauptressource] vor dem [Produktionsbeginn].
 
|-
 
|-
|   ||Gibt aus, wieviele Male länger die Zeitperiode ist, als die Minimum Arbeitszeit ab Startzeit bis Endzeit der Ressoruce.|| 
+
!Hinweis
 +
|colspan="4"|Kann genutzt werden, um mit der [Rüstzeitanpassungsformel] die Zeit vom Beginn der Arbeitszeit bis zum [Produktionsbeginn] zum Rüsten zu nutzen.
 
|-
 
|-
 
|}
 
|}
  
Beispiel
+
== GetNearestWorkingEndTime( resource, date, dir ) ==
 
+
{| class="wikitable"
 
+
|-
{|
+
!rowspan="3"|Parameter
 +
|''resource''||Ressource||rowspan="2"|
 
|-
 
|-
|   ||GetWorkingDays(#2008/06/09 00:00:00#,#2008/06/11 00:00:00#,ME,5h) -> 2<br /><br />ME ist Mischer1. Es gibt 2 Zeitperioden, die länger sind als 5 Stunden vom 2008/06/09 00:00:00 bis 2008/06/11 00:00:00, es wird 2 ausgegeben.|| 
+
|''date''||Startzeit für die Suche
 
|-
 
|-
|}
+
|''dir''||Richtung der Suche
 
+
|
 
+
* <code>TRUE</code>: in die Zukunft
[[Image:incodefunc-kadoujikan02.jpg]]
+
* <code>FALSE</code>: in die Vergangenheit
 
 
 
 
{|
 
 
|-
 
|-
|   ||GetWorkingDays(#2008/06/09 00:00:00#,#2008/06/11 00:00:00#,ME,5h) -> 2<br /><br />ME ist Mischer1. Es gibt 4 Zeitperioden, die länger sind als 4 Stunden vom 2008/06/09 00:00:00 bis 2008/06/11 00:00:00, es wird 4 ausgegeben.|| 
+
!Rückgabewert
 +
|colspan="4"|Das erste Ende einer Arbeitszeitperiode auf ''resource'' ab ''date'' in Richtung ''dir''.
 
|-
 
|-
|}
+
!rowspan="8"|Beispiele
 
+
!rowspan="2"|1.
 
+
|colspan="2"|
[[Image:incodefunc-kadoujikan03.jpg]]
+
GetNearestWorkingEndTime( ME.Operation.OperationMainRes,
&nbsp;
+
                          #2026/06/01 15:00:00#,
 
+
                          TRUE
GetWorkingTime( Start, Ende, Ressoruce )
+
                        )
 
+
|01/06/2026 23:00
Parameter
 
 
 
 
 
{|
 
 
|-
 
|-
|   ||Start||Berechnete Startzeit|| 
+
|colspan="3"|[[Image:GetNearestWorkingStartTime_001.png]]
 
|-
 
|-
||   ||Ende||Berechnete Endzeit
+
!rowspan="3"|2.
 +
|colspan="2"|
 +
GetNearestWorkingStartTime( ME.Operation.OperationMainRes,
 +
                          #2024/6/3 3:00:00#,
 +
                          TRUE
 +
                        )
 +
|03/06/2026 23:00
 
|-
 
|-
||   ||Ressoruce||Ressourcen Objekt
+
|colspan="2"|
 +
GetNearestWorkingEndTime( ME.Operation.OperationMainRes,
 +
                          #2024/6/3 3:00:00#,
 +
                          FALSE
 +
                        )
 +
|02/06/2026 23:00
 
|-
 
|-
|}
+
|colspan="3"|[[Image:GetNearestWorkingStartTime_002.png]]
 
 
Rückgabewert
 
 
 
 
 
{|
 
 
|-
 
|-
|   ||Gibt die gesamte Arbeitszeit einer spezifizierten Ressoruce von Start bis Ende aus.|| 
+
!3.
 +
|colspan="2"|
 +
GetNearestWorkingEndTime( PROJECT.ProductionCalendarRes,
 +
                          StartOfNextWeek( PROJECT.BasisTime,
 +
                                          1
 +
                                        ),
 +
                          TRUE
 +
                        )
 +
|Ende der Arbeitszeit der [Werkskalenderressource] in der Woche nach der [Planungsbasiszeit].
 
|-
 
|-
|}
+
!4.
 
+
|colspan="2"|
Beispiel
+
GetNearestWorkingEndTime( ME.OperationMainRes,
 
+
                          ME.OperationProductionStartTime,
 
+
                          FALSE
{|
+
                        )
 +
|Ende der Arbeitszeit auf der [Hauptressource] vor dem [Produktionsbeginn].
 
|-
 
|-
|   ||GetWorkingTime(#2008/06/09 00:00:00#,#2008/06/11 00:00:00#,ME) -> 1440M<br /><br />ME ist Mischer1. Gibt 1440 Minuten Arbeitszeit für Mischer1 aus im Zeitraum von 2008/06/09 00:00:00 bis 2008/06/11 00:00:00.|| 
+
!Hinweis
 +
|colspan="4"|Kann genutzt werden, um mit der [Rüstzeitanpassungsformel] die Zeit vom Beginn der Arbeitszeit bis zum [Produktionsbeginn] zum Rüsten zu nutzen.
 
|-
 
|-
 
|}
 
|}
 
 
[[Image:incodefunc-kadoujikan04.jpg]]
 
 
  
 
<hr>
 
<hr>
 
<div align="right">Hilfe Nummer: 741540</div>
 
<div align="right">Hilfe Nummer: 741540</div>

Aktuelle Version vom 17. Juni 2025, 12:43 Uhr

Hilfe Nummer: 741540
Interne Funktionen
Formeleditor

Asprova stellt Ihnen die folgenden Funktionen rund um Arbeitszeiten zur Verfügung.

AdvanceAlongResourceWorkingTime( resouce, time, timeSpan )

Parameter resource Ressource
time Basiszeit
timeSpan Zeitspanne
Rückgabewert Gibt den Zeitpunkt timeSpan nach time zurück, wobei nur die Arbeitszeiten auf resource berücksichtigt werden.
Beispiele AdvanceAlongResourceWorkingTime(ME.Resource,#2020/06/01 00:00:00#,24h) 02/06/2020 21:00
Incodefunc-kadoujikan01.png
ME ist hier "Mischer 1".
Hinweis Hat timeSpan einen negativen Wert, so liegt der Rückgabewert vor time.

GetResourceQtyTime( resource, start, end )

Parameter resource Ressource
start Beginn
end Ende
Rückgabewert Gibt die Ressourcenanzahlzeit (Ressourcenzeit * Ressourcenanzahl) von resource zwischen start und end zurück.
Beispiel GetResourceQtyTime(ME,#2020/06/04 00:00#,#2020/06/09 00:00#) 172800
GetResourceQtyTime01.png
ME ist hier "Mischer 1". 1*12h + 2*12h + 1*12h = 172800 (≈2d)

GetWorkingDays ( start, end, resource, minTime )

Die Funktion kann überladen und somit auch mit anderen Parametern genutzt werden: GetWorkingDays ( start, end, resource, minTime, type )

Variante 1 Variante 2
Parameter start Beginn start Beginn
end Ende end Ende
resource Ressource resource Ressource
minTime Minimale Arbeitszeit in einem Arbeitstag minTime Minimale Arbeitszeit in einem Arbeitstag
type Zählweise
Rückgabewert Gibt die Anzahl an Arbeitszeitperioden auf resource zwischen start und end an, die mindestens minTime lang sind. Arbeitszeitperioden werden dabei mitternachts automatisch als unterbrochen angesehen. type bestimmt wie Arbeitszeitperioden gezählt werden:
  • 0: alle Perioden, die mindestens minTime lang sind (also wie kein Wert)
  • 1: Arbeitstage, d.h. je Tag maximal eine Periode, die mindestens minTime lang ist
Beispiele GetWorkingDays(#2020/06/01 00:00#, #2020/06/03 00:00#, ME, 5h) 2
Incodefunc-kadoujikan02.png
GetWorkingDays(#2020/06/01 00:00#, #2020/06/03 00:00#, ME, 4h) 4
Incodefunc-kadoujikan03.png
GetWorkingDays(#2020/06/01 00:00#, #2020/06/03 00:00#, ME, 4h, 1) 2
Incodefunc-kadoujikan05.png
ME ist hier jeweils "Mischer 1".

GetWorkingTime( start, end, resource )

Parameter start Beginn
end Ende
resource Ressource
Rückgabewert Gibt die Arbeitszeit von resource zwischen start und end zurück.
Beispiele GetWorkingTime(#2020/06/01 00:00:00#,#2020/06/03 00:00:00#,ME) 1d
Incodefunc-kadoujikan04.png
ME ist hier "Mischer 1".
Anders als bei GetResourceQtyTime() wird die Ressourcenanzahl nicht berücksichtigt.

GetCalendar( res, time )

Parameter res Ressource
time Zeit
Rückgabewert Gibt das Kalenderobjekt zurück, das auf resource für den Zeitpunkt time angewendet wird.
Beispiele GetCalendar(ME.Resource,ME.StartTime)

Getcalendar 01.png

Kalendertabelle
Ressource Darum oder
Wochentag
Schicht-
code
Reihen-
folge
Ressourcen
anzahl
Vorgänge
* Mo-Fr Tagesschicht 10 1 02:10
Mischer 1 02/06/2020 Tagesschicht 2 30 1 03:10
Mischer 1 03/06/2020 Nacht 1;Nacht 2 30 2 04:10, 05:10

ME ist hier "Mischer 1".

GetShiftList( res, time, includeStart, includeEnd )

Parameter res Ressource
time Zeit
includeStart Definiert ob Schichten eingeschlossen werden, die genau zu time beginnen.
includeEnd Definiert ob Schichten eingeschlossen werden, die genau zu time enden.
Rückgabewert Gibt die Schichtobjekte zurück, die zu time auf res angewendet werden. Über includeStart und includeEnd wird definiert, ob Schichten mit einbezogen werden, die genau um time beginnen oder enden. Bei TRUE werden diese einbezogen, bei FALSE nicht.
Beispiele
GetShiftList( ME.Resource,
             ME.StartTime,
             TRUE,
             TRUE
            )
Getshift 01.png
ME.Resource ist hier "Mischer 1".
  • Schichten sind nach deren Beginn sortiert.
  • Es wird angenommen, dass die Zeiten in [Arbeitszeiten] der Schichten zwischen 00:00 und 48:0 liegen.
  • Liegt time in einer arbeitsfreien Zeit und der Tag ist ein Feiertag, so wird die Feiertagsschicht zurückgegeben.

GetOverwriteCalendar( res, time )

Parameter res Ressource
time Zeit
Rückgabewert Gibt die Kalenderausnahme zurück, die zu time auf res angewendet werden.
Beispiele
GetOverwriteCalendar( ME.Operation.OperationMainRes,
                     ME.StartTime
                    )
GetOverwriteCalendar 01.png
Der [Nutzungsanweisungsbalkentext] zeigt die Kalenderausnahme der [Hauptressource] des Vorgangs zum [Beginn] der Aufgabe an.
GetOverwriteCalendar( ME.TentAssignResource,
                     ME.TentAssignProductionStartTime-1s
                    )
GetOverwriteCalendar 02.png
Die [Rüstzeitanpassungsformel] bezieht während der vorläufigen Zuweisung die Kalenderausnahme eine Sekunde vor [Vorläufige Zuweisung - Produktionsbeginn] auf [Vorläufige Zuweisung - Ressource].

AdvanceAlongResourceWorkingDay( resource, time, day, minTime, type )

Parameter resource Ressource
time Basiszeit
day Anzahl der Arbeitstage
  • positiv: in die Zukunft
  • negativ: in die Vergangenheit
  • 0: aktueller Arbeitstag
minTime Mindestarbeitszeit, damit Tag als Arbeitstag zählt 0s wird als 1s angesehen
type Definiton des Rückgabewerts
  • 0: Tagesbeginn
  • 1: Beginn der Arbeitszeit
Rückgabewert Beginn des Tages (oder je nach type der Arbeitszeit) day Arbeitstage von resource nach time, wobei ein Arbeitstag mindestens minTime an Arbeitszeit enthalten muss.
Beispiele AdvanceAlongResourceWorkingDay(ME.PrevOperation.OperationMainRes, ME.PrevOperation.EndTime, 3, 8h, 1) 10/06/2026 00:00
AdvanceAlongResourceWorkingDay.png
AdvanceAlongResourceWorkingDay(ME.OperationMainRes, ME.OperationProductionStartTime, -2, 0, 0) 10/06/2026 00:00
AdvanceAlongResourceWorkingDay.png
Hinweise
  • Als Tagesbeginn wird die [Tagestrennzeit] des Projekts genutzt.
  • Unabhängig von der Zeit in time, wird der Tag von time als Arbeitstag angesehen, falls dieser ab der [Tagestrennzeit] mindestens minTime' an Arbeitszeit hat.

GetNearestWorkingStartTime( resource, date, dir )

Parameter resource Ressource
date Startzeit für die Suche
dir Richtung der Suche
  • TRUE: in die Zukunft
  • FALSE: in die Vergangenheit
Rückgabewert Der erste Beginn der nächsten Arbeitszeitperiode auf resource ab date in Richtung dir.
Beispiele 1.
GetNearestWorkingStartTime( ME.Operation.OperationMainRes,
                           #2026/06/01 15:00:00#,
                           TRUE
                          )
02/06/2026 08:00
GetNearestWorkingStartTime( ME.Operation.OperationMainRes,
                           #2026/06/01 15:00:00#,
                           FALSE
                          )
01/06/2026 08:00
GetNearestWorkingStartTime 001.png
2.
GetNearestWorkingStartTime( ME.Operation.OperationMainRes,
                           #2024/6/3 3:00:00#,
                           TRUE
                          )
03/06/2026 00:00
GetNearestWorkingStartTime( ME.Operation.OperationMainRes,
                           #2024/6/3 3:00:00#,
                           FALSE
                          )
02/06/2026 00:00
GetNearestWorkingStartTime 002.png
3.
GetNearestWorkingStartTime( PROJECT.ProductionCalendarRes,
                           StartOfNextWeek( PROJECT.BasisTime,
                                           1
                                          ),
                           TRUE
                          )
Beginn der Arbeitszeit der [Werkskalenderressource] in der Woche nach der [Planungsbasiszeit].
4.
GetNearestWorkingStartTime( ME.OperationMainRes,
                           ME.OperationProductionStartTime,
                           FALSE
                          )
Beginn der Arbeitszeit auf der [Hauptressource] vor dem [Produktionsbeginn].
Hinweis Kann genutzt werden, um mit der [Rüstzeitanpassungsformel] die Zeit vom Beginn der Arbeitszeit bis zum [Produktionsbeginn] zum Rüsten zu nutzen.

GetNearestWorkingEndTime( resource, date, dir )

Parameter resource Ressource
date Startzeit für die Suche
dir Richtung der Suche
  • TRUE: in die Zukunft
  • FALSE: in die Vergangenheit
Rückgabewert Das erste Ende einer Arbeitszeitperiode auf resource ab date in Richtung dir.
Beispiele 1.
GetNearestWorkingEndTime( ME.Operation.OperationMainRes,
                         #2026/06/01 15:00:00#,
                         TRUE
                        )
01/06/2026 23:00
GetNearestWorkingStartTime 001.png
2.
GetNearestWorkingStartTime( ME.Operation.OperationMainRes,
                         #2024/6/3 3:00:00#,
                         TRUE
                        )
03/06/2026 23:00
GetNearestWorkingEndTime( ME.Operation.OperationMainRes,
                         #2024/6/3 3:00:00#,
                         FALSE
                        )
02/06/2026 23:00
GetNearestWorkingStartTime 002.png
3.
GetNearestWorkingEndTime( PROJECT.ProductionCalendarRes,
                         StartOfNextWeek( PROJECT.BasisTime,
                                         1
                                        ),
                         TRUE
                        )
Ende der Arbeitszeit der [Werkskalenderressource] in der Woche nach der [Planungsbasiszeit].
4.
GetNearestWorkingEndTime( ME.OperationMainRes,
                         ME.OperationProductionStartTime,
                         FALSE
                        )
Ende der Arbeitszeit auf der [Hauptressource] vor dem [Produktionsbeginn].
Hinweis Kann genutzt werden, um mit der [Rüstzeitanpassungsformel] die Zeit vom Beginn der Arbeitszeit bis zum [Produktionsbeginn] zum Rüsten zu nutzen.

Hilfe Nummer: 741540