Arbeitszeit: Unterschied zwischen den Versionen

Aus Asprova Hilfe
Wechseln zu: Navigation, Suche
(GetWorkingDays ( start, end, resource, minTime ))
(GetNearestWorkingStartTime( resource, date, dir ))
 
(12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 51: Zeile 51:
  
 
== GetWorkingDays ( start, end, resource, minTime ) ==
 
== 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"
 
{| class="wikitable"
 
|-
 
|-
Zeile 64: Zeile 65:
 
|-
 
|-
 
|''minTime''||Minimale Arbeitszeit in einem Arbeitstag||''minTime''||Minimale Arbeitszeit in einem Arbeitstag
 
|''minTime''||Minimale Arbeitszeit in einem Arbeitstag||''minTime''||Minimale Arbeitszeit in einem Arbeitstag
 +
|-
 +
|colspan="2"| ||''type''||Zählweise
 
|-
 
|-
 
!Rückgabewert
 
!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"|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
 
|-
 
|-
!rowspan="4"|Beispiele
+
|colspan="4"|[[Image:incodefunc-kadoujikan03.png]]
|<span style="white-space: nowrap;"><code>GetWorkingDays(#2008/06/09&#160;00:00#,#2008/06/11&#160;00:00#,ME,5h)</code></span>||2
 
 
|-
 
|-
|colspan="2"|[[Image:incodefunc-kadoujikan02.png]]<br><code>ME</code> ist hier "Mischer 1".
+
|colspan="3"|<code>GetWorkingDays(#2020/06/01&#160;00:00#, #2020/06/03&#160;00:00#, ME, 4h, 1)</code>||2
 
|-
 
|-
|<code>GetWorkingDays(#2008/06/09&#160;00:00#,#2008/06/11&#160;00:00#,ME,4h)</code>||4
+
|colspan="4"|[[Image:incodefunc-kadoujikan05.png]]
 
|-
 
|-
|colspan="2"|[[Image:incodefunc-kadoujikan03.png]]
+
|colspan="4"|<code>ME</code> ist hier jeweils "Mischer 1".
 
|-
 
|-
 
|}
 
|}
Zeile 93: Zeile 104:
 
|-
 
|-
 
!rowspan="2"|Beispiele
 
!rowspan="2"|Beispiele
|<code>GetWorkingTime(#2008/06/09 00:00:00#,#2008/06/11 00:00:00#,ME)</code>||2d
+
|<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".
 
|colspan="2"|[[Image:incodefunc-kadoujikan04.png]]<br><code>ME</code> ist hier "Mischer 1".
Zeile 201: Zeile 212:
 
|}
 
|}
  
== AdvanceAlongResourceWorkingDay( resouce, time, day, minTime, type) ==
+
== AdvanceAlongResourceWorkingDay( resource, time, day, minTime, type ) ==
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Zeile 238: Zeile 249:
 
* Als Tagesbeginn wird die [Tagestrennzeit] des Projekts genutzt.
 
* 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.
 
* 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 ) ==
 +
{| class="wikitable"
 +
|-
 +
!rowspan="3"|Parameter
 +
|''resource''||Ressource||rowspan="2"|
 +
|-
 +
|''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]]
 +
|-
 +
!rowspan="3"|2.
 +
|colspan="2"|
 +
GetNearestWorkingStartTime( ME.Operation.OperationMainRes,
 +
                            #2024/6/3 3:00:00#,
 +
                            TRUE
 +
                          )
 +
|03/06/2026 00:00
 +
|-
 +
|colspan="2"|
 +
GetNearestWorkingStartTime( ME.Operation.OperationMainRes,
 +
                            #2024/6/3 3:00:00#,
 +
                            FALSE
 +
                          )
 +
|02/06/2026 00:00
 +
|-
 +
|colspan="3"|[[Image:GetNearestWorkingStartTime_002.png]]
 +
|-
 +
!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"|
 +
GetNearestWorkingStartTime( ME.OperationMainRes,
 +
                            ME.OperationProductionStartTime,
 +
                            FALSE
 +
                          )
 +
|Beginn der Arbeitszeit auf der [Hauptressource] vor dem [Produktionsbeginn].
 +
|-
 +
!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.
 +
|-
 +
|}
 +
 +
== GetNearestWorkingEndTime( resource, date, dir ) ==
 +
{| class="wikitable"
 +
|-
 +
!rowspan="3"|Parameter
 +
|''resource''||Ressource||rowspan="2"|
 +
|-
 +
|''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"|Das erste Ende einer Arbeitszeitperiode auf ''resource'' ab ''date'' in Richtung ''dir''.
 +
|-
 +
!rowspan="8"|Beispiele
 +
!rowspan="2"|1.
 +
|colspan="2"|
 +
GetNearestWorkingEndTime( ME.Operation.OperationMainRes,
 +
                          #2026/06/01 15:00:00#,
 +
                          TRUE
 +
                        )
 +
|01/06/2026 23:00
 +
|-
 +
|colspan="3"|[[Image:GetNearestWorkingStartTime_001.png]]
 +
|-
 +
!rowspan="3"|2.
 +
|colspan="2"|
 +
GetNearestWorkingStartTime( ME.Operation.OperationMainRes,
 +
                          #2024/6/3 3:00:00#,
 +
                          TRUE
 +
                        )
 +
|03/06/2026 23:00
 +
|-
 +
|colspan="2"|
 +
GetNearestWorkingEndTime( ME.Operation.OperationMainRes,
 +
                          #2024/6/3 3:00:00#,
 +
                          FALSE
 +
                        )
 +
|02/06/2026 23:00
 +
|-
 +
|colspan="3"|[[Image:GetNearestWorkingStartTime_002.png]]
 +
|-
 +
!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"|
 +
GetNearestWorkingEndTime( ME.OperationMainRes,
 +
                          ME.OperationProductionStartTime,
 +
                          FALSE
 +
                        )
 +
|Ende der Arbeitszeit auf der [Hauptressource] vor dem [Produktionsbeginn].
 +
|-
 +
!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.
 
|-
 
|-
 
|}
 
|}

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