Interface Library
MtsResourceModule
Note
- Both global and dynamic variables can be used in the parameters.
- Using invalid variables leads to undefined behavior.
Python Module Subclasses
PPMSCSVModule
- Can write CSV files which can be read by PPMS 38.
- The format of these CSV files looks as follows:
@BEGIN GLOBAL SEPARATOR ; ESCAPE @ @END GLOBAL @BEGIN MODULE MODULE @ @END MODULE wert_1;wert_2 wert_1;wert_2
CODE
Use | Possible ? |
---|---|
Source module | No |
Pool module | No |
Target module | Yes |
Parameters | Function |
---|---|
filepath | Path of the file to be exported. It can either be in relation to the server directory or be an absolute path on the server. |
delimiter | Separator within the CSV file |
escapechar | Character used to escape the delimiter within a value |
encoding | Codec with which the file is encoded |
overwrite | Defines whether an already existing file is to be overwritten during export |
quoting | Defines whether the values are to be written/read in inverted commas. Possible values can be found in the Python Documentation |
MtsModule
- Sends and writes data in PLANTA using the Mts layer.
- All data that was sent from this module is of the strings type, and as a recipient, the module also expects all values to be strings.
- Data fields which occur in the mapping but are not available in the data area are ignored without warning.
- Data fields in window 9 are not filled.
- The module determines the table to which is imported on the basis of the DDI.
- This info is used to identify the primary keys in this data area and to fill them first.
- This behavior enables the update of existing records if the complete primary key is included in the delivery.
- Provides a field length check.
- The field length check is not carried out for date fields.
Use | Possible ? |
---|---|
Source module | Yes |
Pool module | No |
Target module | Yes |
Parameters | Function |
---|---|
sorted | Values
|
da_name | Python ID of the data area to which data is imported or exported. If the MtsModule is set as a target module, the parameter can remain empty. This implies that all data areas in the module are used as import targets. |
Note
- MtsModule interprets the following input as valid values for checkboxes:
- Deactivated: 'N', '@N', '0', '', 'FALSE'
- Activated: 'Y', '@Y', '1', 'J', 'TRUE', 'X'
MtsProjectModule
- Sends and writes data in PLANTA using the Mts layer.
- All data that was sent from this module is of the strings type, and as a recipient, the module also expects all values to be strings.
- Data fields which occur in the mapping but are not available in the data area are ignored without warning.
- Data fields in window 9 are not filled.
- The module determines the table to which is imported on the basis of the DDI.
- This info is used to identify the primary keys in this data area and to fill them first.
- This behavior enables the update of existing records if the complete primary key is included in the delivery.
- Provides a field length check.
- The field length check is not carried out for date fields.
Use | Possible ? |
---|---|
Source module | Yes |
Pool module | No |
Target module | Yes |
Parameters | Function |
---|---|
sorted | Values
|
da_name | Python ID of the data area to which data is imported or exported. If the MtsModule is set as a target module, the parameter can remain empty. This implies that all data areas in the module are used as import targets. |
auto_task_id | The Python ID for automatic creation of a task (e.g. to import costs to it). If the parameter is not filled, no task is created. The parameter is only available if the module is used as a target module in import. |
auto_task_name | Name for the automatically created task. The parameter is only available if the module is used as a target module in import. |
MtsLiabilityModule
Function and use analogously to MtsModule except for the following differences:
- Upon data import, all liability values are cleared, i.e. the following DIs are set to 0 system-wide.
- DI060503 Liability (DT282)
- DI060189 Liability (DT281)
- The pool records which are imported by the interface are marked with a liability flag.
- Upon import, all pool records which are flagged as liability and have not yet been transferred are deleted. Values which have already been transferred remain in the pool for archiving.
- If all yearly tranches have been imported correctly, the following Dis are stamped:
MtsPoolModule
- Works like an MtsModule but stamps Status and Transferred on in DT 567.
- The module only works correctly if the pool table has been customized correctly (see Interface Customizing).
Use | Possible ? |
---|---|
Source module | No |
Pool module | Yes |
Target module | No |
Parameters | Function |
---|---|
sending_da | Data area from which the data is loaded in the Pool → Target step Note:
|
receiving_da | Data area in which the data is stored in the Source → Pool step |
l_var | The number to be filled with the current interface configuration in the pool module. Allows you to restrict the pool table to the records of the current transaction. |
Information
- The constellation allows for a more flexible customizing. You can now import to a "technical" data area which contains the raw fields and is then exported from a processed data area which processes data using functions like grouping or summarization.
CSVModule
- Can read and write CSV files
- It can only import files that can be accessed from the application server using the user which runs the PLANTA service.
- Here you can take a plain dummy data area with a field as a data area.
- If the module is used as a source module and the readheader parameter is 1, the source mappings correspond to the column names in the file.
- If the parameter is 0, the position is used for column definition instead.
- If the module is used as a target module and the writeheader parameter is 1, the target mappings correspond to the column names in the file.
- If the parameter is 0, the position is used for column definition instead.
Use | Possible ? |
---|---|
Source module | Yes |
Pool module | No |
Target module | Yes |
Parameters | Function |
---|---|
archive_dir | Path to a directory to which the file is to be moved after successful import. It can either be in relation to the server directory or be an absolute path on the server. If the parameter is empty, the server directory is used. If the directory does not exist, it will be created. |
filepath | Path of the file to be imported or exported. It can either be in relation to the server directory or it can be an absolute path on the server. Wildcards like * can be used in the name. If several files are found, an error is displayed. |
delimiter | Separator within the CSV file If you want to use a tab as a separator, you have to enter /t . |
escapechar | Character used to escape the delimiter within a value |
encoding | Codec with which the file is encoded |
writeheader | Defines whether a title line is written during export |
readheader | Defines whether the first line or the source mappings display the column names in the CSV file |
overwrite | Defines whether an already existing file is to be overwritten during export |
quoting | Defines whether the values are to be written/read in inverted commas. Possible values can be found in the Python Documentation. |
Notes
-
After a file has been imported successfully, the UUID of the interface configuration is written in the file name and the file is moved to the directory configured via
archive_dir
. - If a CSV export is carried out, placeholders can be used in the
filepath
parameter in order to format a time stamp. The possible placeholders can be found in the Python documentation.
The most common encoding values are:
encoding | Used by |
---|---|
latin-1 | Default Microsoft Excel encoding on German computers |
windows-1252 | Default Microsoft Excel encoding on English computers |
utf-8 | UTF-8 encoded file without BOM |
utf-8-sig | UTF-8 encoded file with BOM |
MultiCSVModule
Information
- This module subclass equates to the CSVModule module subclass.
- It only differs in the
filepath
parameter.- If several files are found, no error is displayed when using MultiCSVModule, but the files are imported/exported one by one in the sequence of their file names.
ClientCSVModule
Information
- This module subclass equates to the CSVModule module subclass.
- In contrast to this module subclass, however, the
filepath
andarchive_dir
parameters do not exist here.
- In contrast to this module subclass, however, the
- Unlike the CSVModule, ClientCSVModule can import/export files which are accessible for the user that opens the PLANTA Client.
MtsLoadModule
- Imports load records and stamps them in the Imported on and Imported by fields (DT472 Loads).
- Exports load records and stamps them in the SAP status, Exported on and Exported by fields (DT472 Loads).
Use | Possible ? |
---|---|
Source module | Yes |
Pool module | No |
Target module | Yes |
Parameters | Function |
---|---|
da_name | See MtsModule |
MtsExportPoolLoadModule
- Works like MtsPoolModule but additionally stamps SAP status, Exported on and Exported by (DT472 Loads).
- Can only be used for export interfaces.
Use | Possible ? |
---|---|
Source module | No |
Pool module | Yes |
Target module | No |
Parameters | Function |
---|---|
sending_da | See MtsPoolModule Note:
|
receiving_da | See MtsPoolModule |
l_var | See MtsPoolModule |
sorted | See MtsModule |
MtsResourceModule
- Module subclass for the import of resources and their corresponding data (person, user, role, stakeholder)
- Since currently the creation and update of resource data still make high demands on the module subclass, an import with the standard MtsModule presents some difficulties.
- MtsResourceModule meets these demands and allows, e.g., for the batch-import of resource data.
- If you want to use an individual interface, you have to create a subclass of MtsResourceModule and adjust the PERSON_DA, ROLE_DA, RESOURCE_DA and STAKEHOLDER_DA class attributes to the customizing IDs of the respective data areas.
- The standard MtsResourceModule points to the data areas of the Employee Import standard interface.
- If the ROLE_DA attribute points to a valid role data area, the 01100214 MP user and 01100225 Employee standard roles are assigned to users.
- The roles assigned by default can be defined according to the customer’s requirements in the Standard roles for fast creation of employee template in the Global Settings module.
BAPIModule
Note
- If you want to customize an interface with BAPI connection, please contact your PLANTA consultant.
SAP connection parameters |
---|
client |
user |
passwd |
long |
trace |
ashost |
sysnr |
mshost |
msserv |
sysid |
group |
GermanHolidayImportModule
- Imports German holidays from a web service to PLANTA calendars. For more information, see Calendar.
Parameters | Function |
---|---|
calendar | ID of the calendar to which you want to import |
start_year | Year from which on you want to import holidays |
end_year | Year up to which you want to import holidays |
state | Federal state for which holidays are to be loaded. Permitted values: HB, NI, NW, HH, SN, MV, BW, SL, SH, ST, BE, RP, BB, BY, HE, TH |
AbsenceImportModule
- Imports absences in the period table
- Since the period table contains one record per day, the imported data is duplicated for each day between start_date and end_date (including start and end date).
- The absence_type column expects a numeric value which you can find in the table below.
- The values can be inserted using a mapping function like e.g. ConstantValue or Replacer.
Reason for absence | Value |
---|---|
Absence | 46 |
1/2 day absence | 45 |
Special leave | 48 |
Vacation | 44 |
1/2 day of vacation | 43 |
Maternity leave/parental leave | 47 |
On- and off-the-job training | 113 |
Sickness | 399 |
Parameters | Function |
---|---|
da_name | See MtsModule |
date_format | The format of the date values in the start_date and end_date columns. For possible values, see the Python documentation. |
ConversionFactorImport
Subclass of MtsModule which is able to update data in the conversion factor table.
- Parameters like MtsModule
BAPIProjectGetInfo
- Can only be used as a source module
- In parameters like BAPIModule with additional
project_definition
you have to enter the SAP project ID to import the WBS structure for this module.
BAPIBUS2054GetData
- Can only be used as a source module
- In parameters like BAPIModule with additional
project_definition
you have to enter the SAP project ID to import the WBS structure for this module.
Mapping Functions
Information
- The following mapping functions can be used according to the type.
Enricher
ConstantBoolValue
- Returns the true/false boolean value depending on the configuration
- Input value: is not considered
- Output value: boolean value (true/false)
Parameters | Function |
---|---|
true | Defines whether true or false is to be returned. Possible values: 0 (false) and 1 (true) |
VariableReader
- Reads the value from an arbitrary variable and returns it
- Input value: not relevant
- Output value: variable content
Parameters | Function |
---|---|
variable | Variable to be read out, e.g. @1 or @G123. Supports all variable types. |
Slicer
- Enables you to apply the Slice function from Python to a value.
- This can be used in order to cut off parts of the text or to invert the text.
- Input value: text
- Output value: text
Parameters | Function |
---|---|
start | Index to begin at |
step | Step width at which to cut off |
end | Index to stop at |
Replacer
- Replaces a value by another one
- Input value: text
- Output value: text
Parameters | Function |
---|---|
old_value | Partial string to be replaced |
new_value | Value by which the partial string is to be replaced |
ConstantValue
- Returns a constant value
- Input value: is not considered
- Output value: text
Parameters | Function |
---|---|
value | By specifying a sign, it will be stripped. If nothing is specified: all types of spaces/tabs |
Stripper
- Cuts off the specified signs before and after a value
Parameters | Function |
---|---|
chars | The sign that is to be cut off If no sign is specified here, all types of spaces/tabs are cut off. |
LeftStripper
- Cuts off the specified characters at the beginning of a value.
Parameters | Function |
---|---|
chars | The sign that is to be cut off If no sign is specified here, all types of spaces/tabs are cut off. |
RightStripper
- Cuts off the specified characters at the end of a value.
Parameters | Function |
---|---|
chars | The sign that is to be cut off If no sign is specified here, all types of spaces/tabs are cut off. |
GetResAssignmentAttribute
- Returns the value of a DI from DT466 and writes a note in the log-file if it could not be found in DT466.
- Input value: is not considered
- Output value: text
Parameters | Function |
---|---|
project | Technical project ID of the project |
task | Technical task ID of the task |
res_id | Resource ID |
python_id | DI Python ID of the DI which is to be returned |
GetPersonId
- Has been replaced by the validator
ConvertResourceIdToPersonId
Concatenator
- Adds the configured string to the input value
- Input value: text
- Output value: text
Parameters | Function |
---|---|
text | Text which is to be added to the input value |
left | Determines whether the text is to be added on the left of the string; possible values are 0 and 1 |
right | Determines whether the text is to be added on the right of the string; possible values are 0 and 1 |
Rounder
- Rounds the input value to the defined number of digits
- Input value: number
- Output value: text
Parameters | Function |
---|---|
digits | A number greater/equal to 0; Defines the number of digits to which the input value is to be rounded. If the parameter cannot be converted into any number, the default value 2 will be used. |
GetResourceAttribute
- Returns the value of a DI from DT467 and writes a note in the log-file if it could not be found in DT467.
- Input value: is not considered.
- Output value: text
Parameters | Function |
---|---|
resource | Resource ID |
python_id | DI Python ID of the DI which is to be returned |
LeftPadder
- Extends the entered string on the left by the defined signs and sets the entire string to the defined length
Parameters | Function |
---|---|
fillchar | Signs by which the string is extended |
width | Entire length of the string with extension |
Example
- Input string: "foo"
- fillchar: \s
- width: 5
- Output string: " foo"
RightPadder
- Extends the entered string on the right by the defined signs and sets the entire string to the defined length
Parameters | Function |
---|---|
fillchar | Signs by which the string is extended |
width | Entire length of the string with extension |
Example
- Input string "foo"
- fillchar: x
- width: 5
- Output string: "fooxx"
DataitemReplacer
- Replaces the input value (in case it is empty) with the value of another data item
- Output value: input value (if not empty), otherwise the value of the specified data item
Parameters | Function |
---|---|
uuid | UUID of the record from which the data item is to be read |
datatable | SQL ID of the data table from which the data item is to be read |
dataitem | SQL ID of the data item to be read |
GetPLANTAIdFromExternalId
- Specifies the PLANTA UUID for the specified ID from an external system, provided that it is linked
- Input value: ID from an external system
- Output value: PLANTA UUID
Parameters | Function |
---|---|
system | Code of the external system (e.g. 728 for PLANTA pulse) |
type | Object type which has this ID (e.g. 'workload' for loads from PLANTA pulse) |
GetValueFromUuid
- Specifies the value of a data item for a record with the specified UUID
- Input value: PLANTA UUID
- Output value: value of the data item
Parameters | Function |
---|---|
datatable | SQL ID of the data table from which the data item is to be read |
dataitem | SQL ID of the data item to be read |
Converter
ToUppercase
- Changes a value to UPPER CASE LETTERS
- Input value: text
- Output value: text
ToString
- Changes a value to a text value
- Input value: arbitrary
- Output value: text
ToInt
- Changes a value to an integer
- Input value: arbitrary
- Output value: integer
Parameters | Function |
---|---|
round | Configures whether the value is to be rounded first |
ToFloat
- Changes a value to a floating point number
- Input value: arbitrary
- Output value: floating point number
StringToPLANTADate
- Converts a text into the PLANTA date format
- Input value: text
- Output value: integer
Parameters | Function |
---|---|
format | Format of the date. For possible values, see the Python documentation. |
PLANTADateToString
- Converts the PLANTA date format into a text
- Input value: integer
- Output value: text
Parameters | Function |
---|---|
format | Format to be used for the date. For possible values, see the Python documentation. |
ConvertFunctionalProjectIDToTechnical
- Has no parameters and takes a functional project ID as a value and returns the technical project ID or None.
ConvertResourceIdToPersonId
- Returns the value of Person for the code which is passed as a value.
- Input value: a valid Code
- Output value: value of the Person field
ConvertTrailingSignToLeadingSign
- Has no parameters and converts a number, like e.g. 10- to -10
UnicodeNormalizer
- Uses compatible decomposition (NFKD) to convert the special signs that are not shown by PLANTA project into signs that can be displayed by PLANTA project.
Parameters | Function |
---|---|
encoding | Encoding to which the input text is to be converted. By default, this parameter is preset with the coding of the server and does not have to be changed. |
ConvertPSPtoUUID
- Takes the "project" parameter and converts the passed WBS ID to a UUID.
ConvertValidFromToConversionFactorItemId
- Checks whether there is a record with the transferred date value for the respective conversion factor ID the Valid from value of which corresponds to the date. If it does, the position is returned (DI000343).
Parameters | Function |
---|---|
conversion_factor_id | Conversion factor ID, saved in DI000341 |
format | Date format for the incoming value (like e.g. PLANTADateToString) |
ConvertDateToYear
- Converts a date into a year.
Parameters | Function |
---|---|
format | Defines the date format to be passed. |
ConvertProjectToAttribute
- Fetches the value from the configured DI for the specified project
- Input value: technical project ID
- Output value: text
Parameters | Function |
---|---|
python_id | The Python ID of the DI from DT461 Project |
ConvertPLANTAUserToPulseUser
- Returns the PLANTA pulse user for a PLANTA project user
- Input value: user code from DT511 (DI010323)
- Output value: PLANTA pulse ID of the user or None
ConvertPLANTAIdToPulseId
- Converts a PLANTA project UUID into a PLANTA pulse ID
- Input value: UUID
- Output value: PLANTA pulse ID of the object or None
ConvertResourceAssignmentUuidToPulseBoardId
- Converts the UUID of a resource assignment into the board ID of the task
- Input value: UUID of a resource assignment (DI060939)
- Output value: board ID of the task
ConvertToJiraField
- Converts the value into a json value which can be processed by Jira
Parameters | Function | Default values |
---|---|---|
format | Format of the json value (must contain the '{input}' placeholder) | {'id': '{input}'} |
ConvertSecondsToHours
- Converts seconds into hours and returns them as float
ConvertJiraIdToPLANTAId
- Converts a Jira ID into a PLANTA project UUID
- Input value: ID of a Jira object
Parameters | Function |
---|---|
type | Type of the external object (as saved in the DT597ExternalSystemObjectMapping table) |
ConvertUuidToAttribute
- Returns the value of the specified data item of a record with the specified PLANTA project UUID from the specified table
- Input value: UUID of a PLANTA project object
Parameters | Function |
---|---|
table | SQL ID of a PLANTA project table |
dataitem | SQL ID of a data item from the specified table |
Validators
- All validators have two parameters:
- child_when_invalid: Here, the name of one of the children of the validator can be entered. If the validator fails, only this child is carried out. If the validator is successful, the
child_when_invalid
string is ignored. - mark_record_as_invalid : If this parameter is at 1, the record is marked as invalid and is not transferred when the validator fails. If the parameter is at 0, only this column is ignored upon transfer.
- child_when_invalid: Here, the name of one of the children of the validator can be entered. If the validator fails, only this child is carried out. If the validator is successful, the
IsTrue
- Checks whether the value is logically true
ExistsAsPK
- Checks whether the transferred value is a primary key in the configured table
Parameters | Function |
---|---|
table_num | Table number in PLANTA to be checked |
IsInList
- Checks whether the transferred value is in the configured value list
Parameters | Function |
---|---|
values | A list of values which must be separated using the configured separator |
separator | Separator for separating the list into separate values |
Equals
- Has been replaced by the validator
ComparesTo
Contains
- Checks whether the configured value exists in the transferred value
Parameters | Function |
---|---|
value | Value to be available |
TaskExists
- Checks whether the transferred value is a valid task ID in the configured project
Parameters | Function |
---|---|
project | Technical project ID of the project in which is checked |
ResIsAssignedToTask
- Checks whether the transferred value is a valid resource assignment in the configured project and task
- Additionally, the validator can create a resource assignment if none exists.
Parameters | Function |
---|---|
project | Technical project ID of the project in which is checked |
task | Technical task ID of the task to be checked |
create_if_not_exists | In case the resource assignment does not exist and this parameter is at 1, the resource assignment is created |
ComparesTo
- Compares values. The validator fails if the comparison fails.
- Input value = arbitrary
Parameters | Function |
---|---|
value | Specifies, against what to compare |
operator | Specifies, how to compare: ==, !=, <, >, <=, >= |
type | Specification of the type, possible values: TEXT, INTEGER and FLOAT. Prior to the comparison, the validator converts the values of the value parameter and the input value into this type. |
YearlyTrancheExists
- Checks whether the passed year is available in the budget of the project as a yearly tranche.
Parameters | Function |
---|---|
project | Specifies the technical project ID of the project for which the check is to be done. |
cost_type_group | Specifies the cost type group subject to the check. |
create_if_not_exists | Specifies whether the yearly tranche is to be created if it does not exist. Valid values: 1 or 0 |
AlreadyMapped
- Checks whether the ID passed from an external system has already been assigned to a PLANTA project object
Parameters | Function |
---|---|
external_system | Specifies the ID of the external system |
external_type | Specifies the type of the object from the external system |
IsInCalendar
- Checks whether the transferred date lies within the calendar periods
- Input value: date string in DD.MM.YY format
Parameters | Function |
---|---|
calendar_id | Specifies the ID of the calendar |
System check classes
Parameters | Function |
---|---|
HostnameConditional | Compares the parameter value to the host name of the application server |
PortConditional | Compares the parameter value to the port entered in globals.conf of the PLANTA server |
WorkDirConditional | Compares the parameter value to the work directory of the PLANTA server |
IPAddressConditional | Compares the parameter value with the IP address of the application server |
Note
- Furthermore, individual check categories can be created. For more information on this, see Customize Individual System Check Class.