Zu den Funktionen für Werkskalender gehören u. a. Funktionen, um Tagesarten auszuwerten und Arbeitstage gemäß dem Werkskalender einem Zeitpunkt hinzuzufügen:
Allgemeine Informationen zu den OLTP-Funktionen der System-Skriptsprache erhalten Sie im Artikel System-Skriptsprache: OLTP-Funktionen.
addWorkingDays
Name | addWorkingDays |
Beschreibung | addWorkingDays fügt einem Zeitpunkt Werktage gemäß dem Standard-Werkskalender einer Organisation hinzu. |
Signaturen | Timestamp addWorkingDays(String organization, Timestamp time, Number days)
|
Parameter | organization ist die Identifikation oder Guid einer Organisation.
time ist der Zeitpunkt, dem Werktage hinzugefügt werden sollen. days ist die Anzahl Werktage zum Hinzufügen. |
Ergebnis | Die Funktion gibt den Zeitpunkt time zuzüglich days Werktage zurück, gemäß dem Werkskalender mit der in der Customizing-Funktion Allgemein für die Organisation organization hinterlegten Werkskalenderart. Das Ergebnis ist immer ein Werktag. |
Fehlerquellen | Ist für die Organisation kein Werkskalender mit der Standard-Werkskalenderart erfasst, führt die Funktion zu einem Laufzeitfehler. |
Beispiele | addWorkingDays("90000", now(), 10) gibt den Zeitpunkt 10 Werktage in der Zukunft gemäß dem StandardWerkskalender der Organisation 90000 zurück.
|
Kontext | OLTP |
Hinweise | Verwenden Sie die Funktion addWorkingDays, um mithilfe der Funktion setActivityWorkDuration die geplante Bearbeitungsdauer einer Workflow-Aktivität zu bestimmen. |
Siehe auch | workingDays |
Folgendes Beispiel entstammt der Aktivitätsdefinition help.addWorkingDays.
function create() { var p_organization := parameters.ORGANIZATION; var p_time := parameters.TIME; var p_days := parameters.DAYS; var r_addWorkingDays := addWorkingDays(loadOrganization(p_organization):guid, p_time, p_days); result.IS_NULL := isNull(r_addWorkingDays); if (not isNull(r_addWorkingDays)) result.NEW_TIME := r_addWorkingDays; }
Beispiel: addWorkingDays in JavaScript implementieren
Folgendes Beispiel aus der Aktivitätsdefinition help.js.addWorkingDays zeigt, wie Deklarationen, die in JavaScript erfasst sind, Methoden in Java aufrufen können. Durch die Verwendung von JavaScript stehen unterschiedliche lesende Methoden in Java-Klassen zur Verfügung, die keine Datenbanktransaktionen absetzen.
/** * Shifts a date by a specified number of days * * Parameters: * calendarType default calendar type of organization * date start date * days number of days (negative numbers allowed) * onlyWorkingDays use only working days * resultIsWorkingDay result must be a working day * standardizeResult result is start of day in the time zone * * Return value: the result date * * Signature: * public CisDate addDays(byte[] calendarType, CisDate date, * int days, boolean onlyWorkingDays, boolean resultIsWorkDay, * boolean standardizeResult) throws IllegalStateException */ function create() { var p_organization = parameters.ORGANIZATION; var p_date = parameters.DATE; var p_workingDays = parameters.WORKING_DAYS; var p_onlyWorkingDays = parameters.ONLY_WORKING_DAYS != 0; var p_resultIsWorkingDay = parameters.RESULT_IS_WORKING_DAY != 0; var p_standardizeResult = true; var cisEnvironment = Java.type(„com.cisag.pgm.appserver.CisEnvironment“).getInstance(); var objectManager = cisEnvironment.getObjectManager(); var organization = objectManager.getObject(Java.type(„com.cisag.app.multiorg.obj.Organization“).buildByCodeKey(p_organization)); var calendarViewLogic = Java.type(„com.cisag.app.general.calendar.log.CalendarViewLogic“).getInstance(); var calendarTypeGuid = calendarViewLogic.getDefaultCalendarType(organization.getGuid()) ; var context = cisEnvironment.getContext(); var cisCalendar = context.getCisCalendar(); var date = Java.type(„com.cisag.pgm.datatype.CisDateUtility“).createCisDate(cisCalendar.getTimeZoneGuid(), p_date); var resultDate = calendarViewLogic.addDays(calendarTypeGuid, date, p_workingDays, p_onlyWorkingDays, p_resultIsWorkingDay, p_standardizeResult); result.RESULT_DATE = resultDate; }
Die Aktivitätsdefinition help.js.addWorkingDays.call zeigt, wie help.js.addWorkingDays aufgerufen werden kann.
function create() { var params := new(HashMap); params.ORGANIZATION := parameters.ORGANIZATION; params.DATE := parameters.DATE; params.WORKING_DAYS := parameters.WORKING_DAYS; params.ONLY_WORKING_DAYS := parameters.ONLY_WORKING_DAYS; params.RESULT_IS_WORKING_DAY := parameters.RESULT_IS_WORKING_DAY; var calendarDays := call("help.js.addWorkingDays", params); result.RESULT_DATE := cast(Timestamp, calendarDays.RESULT_DATE); }
getDayType
Name | getDayType |
Beschreibung | getDayType gibt den Tagestyp eines Zeitpunkts gemäß dem Standard-Werkskalender einer Organisation zurück. |
Signaturen | Number getDayType(String organization, Timestamp time)
|
Parameter | organization ist die Identifikation oder Guid einer Organisation.
time ist der Zeitpunkt, dessen Tagesart ermittelt werden soll. |
Ergebnis | Die Funktion gibt den Tagestyp von time gemäß dem Werkskalender mit der in der Customizing-Funktion Allgemein für die Organisation organization hinterlegten Werkskalenderart zurück. Der Tagestyp basiert auf dem ValueSet com.cisag.app.general.DayType und hat folgende Werte.
|
Fehlerquellen | Ist für die Organisation kein Werkskalender mit der Standard-Werkskalenderart erfasst, führt die Funktion zu einem Laufzeitfehler. |
Beispiele | getDayType("90000", now()) gibt den Tagestyp des heutigen Tages gemäß dem Standard-Werkskalender der Organisation 90000 zurück. |
Kontext | OLTP |
Hinweise | |
Siehe auch |
Folgendes Beispiel entstammt der Aktivitätsdefinition help.getDayType.
const DayType as valueSet(com.cisag.app.general.DayType); function create() { var p_organization := parameters.ORGANIZATION; var p_time := parameters.TIME; var r_dayType := getDayType(loadOrganization(p_organization):guid, p_time); result.IS_NULL := isNull(r_dayType); if (not isNull(r_dayType)) result.DAY_TYPE := valueSetDescription(DayType, r_dayType); }
workingDays
Name | workingDays |
Beschreibung | workingDays gibt die Anzahl Werktage zwischen zwei Zeitpunkten gemäß dem Standard-Werkskalender einer Organisation zurück. |
Signaturen | Number workingDays(String organization, Timestamp from, Timestamp until)
|
Parameter | organization ist die Identifikation oder Guid einer Organisation.
from ist ein Zeitpunkt am ersten Kalendertag. until ist ein Zeitpunkt am letzten Kalendertag. |
Ergebnis | Die Funktion gibt die Anzahl Werktage zwischen den Kalendertagen von from und until zurück, gemäß dem Werkskalender mit der in der Customizing-Funktion Allgemein für die Organisation organization hinterlegten Werkskalenderart. Sind die beiden Zeitpunkte from und until am gleichen Kalendertag, dann wird der Wert 0 zurückgegeben. |
Fehlerquellen | Ist für die Organisation kein Werkskalender mit der Standard-Werkskalenderart erfasst, führt die Funktion zu einem Laufzeitfehler. |
Beispiele | workingDays("90000", parameters.object:date, now()) gibt die Anzahl Werktage zwischen einem von parameters.object referenzierten Beleg und dem aktuellen Tag zurück. Wird der Ausdruck beim Erzeugen und Ausgeben eines Lieferscheins z. B. für einen Vertriebsauftrag ausgewertet, dann könnte dies die Dauer in Werktagen zwischen dem Erfassen des Vertriebsauftrags und der Lieferung sein. |
Kontext | OLTP |
Hinweise | |
Siehe auch | addWorkingDays |
Folgendes Beispiel entstammt der Aktivitätsdefinition help.workingDays.
function create() { var p_organization := parameters.ORGANIZATION; var p_from := parameters.FROM; var p_until := parameters.UNTIL; r_workingDays := workingDays(loadOrganization(p_organization):guid, p_from, p_until); result.IS_NULL := isNull(r_workingDays); if (not isNull(r_workingDays)) result.WORKING_DAYS := r_workingDays; }