Arbeitszeit: Unterschied zwischen den Versionen
Aus Asprova Hilfe
GK (Diskussion | Beiträge) K (→GetCalendar( res, time )) |
GK (Diskussion | Beiträge) (→GetNearestWorkingStartTime( resource, date, dir )) |
||
| (24 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 34: | Zeile 34: | ||
|- | |- | ||
!rowspan="3"|Parameter | !rowspan="3"|Parameter | ||
| − | |''resource''||Ressource | + | |width="1px"|''resource''||Ressource |
|- | |- | ||
|''start''||Beginn | |''start''||Beginn | ||
| Zeile 44: | Zeile 44: | ||
|- | |- | ||
!rowspan="2"|Beispiel | !rowspan="2"|Beispiel | ||
| − | |<code>GetResourceQtyTime(ME,#2020/06/04 00:00#,#2020/06/09 00:00#)</code>||172800 | + | |<span style="white-space: nowrap;"><code>GetResourceQtyTime(ME,#2020/06/04 00:00#,#2020/06/09 00:00#)</code></span>||172800 |
|- | |- | ||
|colspan="2"|[[Image:GetResourceQtyTime01.png]]<br><code>ME</code> ist hier "Mischer 1". 1*12h + 2*12h + 1*12h = 172800 (≈2d) | |colspan="2"|[[Image:GetResourceQtyTime01.png]]<br><code>ME</code> ist hier "Mischer 1". 1*12h + 2*12h + 1*12h = 172800 (≈2d) | ||
| 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" | ||
|- | |- | ||
| − | !rowspan=" | + | | |
| − | |''start''||Beginn | + | !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 | !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 00:00#, #2020/06/03 00:00#, ME, 5h)</code></span>||2 | ||
| + | |- | ||
| + | |colspan="4"|[[Image:incodefunc-kadoujikan02.png]] | ||
| + | |- | ||
| + | |colspan="3"|<code>GetWorkingDays(#2020/06/01 00:00#, #2020/06/03 00:00#, ME, 4h)</code>||4 | ||
|- | |- | ||
| − | + | |colspan="4"|[[Image:incodefunc-kadoujikan03.png]] | |
| − | |||
|- | |- | ||
| − | |colspan=" | + | |colspan="3"|<code>GetWorkingDays(#2020/06/01 00:00#, #2020/06/03 00:00#, ME, 4h, 1)</code>||2 |
|- | |- | ||
| − | | | + | |colspan="4"|[[Image:incodefunc-kadoujikan05.png]] |
|- | |- | ||
| − | |colspan=" | + | |colspan="4"|<code>ME</code> ist hier jeweils "Mischer 1". |
|- | |- | ||
|} | |} | ||
| Zeile 90: | Zeile 104: | ||
|- | |- | ||
!rowspan="2"|Beispiele | !rowspan="2"|Beispiele | ||
| − | |<code>GetWorkingTime(# | + | |<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 141: | Zeile 155: | ||
|- | |- | ||
!rowspan="4"|Parameter | !rowspan="4"|Parameter | ||
| − | |''res''||Ressource | + | |width="1px"|''res''||Ressource |
|- | |- | ||
|''time''||Zeit | |''time''||Zeit | ||
|- | |- | ||
| − | |''includeStart''||Definiert ob | + | |''includeStart''||Definiert ob Schichten eingeschlossen werden, die genau zu ''time'' beginnen. |
|- | |- | ||
| − | |''includeEnd''|| | + | |''includeEnd''||Definiert ob Schichten eingeschlossen werden, die genau zu ''time'' enden. |
|- | |- | ||
!Rückgabewert | !Rückgabewert | ||
| − | |colspan="2"|Gibt | + | |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 | !rowspan="2"|Beispiele | ||
| − | |colspan="2"|<code> | + | |colspan="2"| |
| + | GetShiftList( ME.Resource, | ||
| + | ME.StartTime, | ||
| + | TRUE, | ||
| + | TRUE | ||
| + | ) | ||
| + | |- | ||
| + | |colspan="2"|[[Image:Getshift_01.png]]<br><code>ME.Resource</code> ist hier "Mischer 1". | ||
| + | |- | ||
| + | !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. | ||
| + | |- | ||
| + | |} | ||
| + | |||
| + | == 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"| | |colspan="2"| | ||
| − | [[Image: | + | GetOverwriteCalendar( ME.TentAssignResource, |
| − | {| class="wikitable | + | ME.TentAssignProductionStartTime-1s |
| + | ) | ||
| + | |- | ||
| + | |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 ) == | ||
| + | {| 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]] |
|- | |- | ||
| − | ! | + | !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. | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
|- | |- | ||
|} | |} | ||
| − | <code> | + | |
| + | == 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. | ||
| + | |- | ||
| + | |} | ||
<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
Asprova stellt Ihnen die folgenden Funktionen rund um Arbeitszeiten zur Verfügung.
Inhaltsverzeichnis
- 1 AdvanceAlongResourceWorkingTime( resouce, time, timeSpan )
- 2 GetResourceQtyTime( resource, start, end )
- 3 GetWorkingDays ( start, end, resource, minTime )
- 4 GetWorkingTime( start, end, resource )
- 5 GetCalendar( res, time )
- 6 GetShiftList( res, time, includeStart, includeEnd )
- 7 GetOverwriteCalendar( res, time )
- 8 AdvanceAlongResourceWorkingDay( resource, time, day, minTime, type )
- 9 GetNearestWorkingStartTime( resource, date, dir )
- 10 GetNearestWorkingEndTime( resource, date, dir )
AdvanceAlongResourceWorkingTime( resouce, time, timeSpan )
GetResourceQtyTime( resource, start, end )
GetWorkingDays ( start, end, resource, minTime )
Die Funktion kann überladen und somit auch mit anderen Parametern genutzt werden: GetWorkingDays ( start, end, resource, minTime, type )
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 |
![]() 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)
| ||||||||||||||||||||||||
| |||||||||||||||||||||||||
GetShiftList( res, time, includeStart, includeEnd )
GetOverwriteCalendar( res, time )
AdvanceAlongResourceWorkingDay( resource, time, day, minTime, type )
GetNearestWorkingStartTime( resource, date, dir )
GetNearestWorkingEndTime( resource, date, dir )
Hilfe Nummer: 741540












