Topic overview
This article describes the procedures for handling the Import data application in relation to supplier contracts. These procedures contain general instruction steps and special features that need to be taken into account. You will also be informed about possible preconditions and effects.
The description of the Import data application, which also includes field and button descriptions, can be found in the Import data article.
General information
The import of the supplier contract is essentially based on the current data model, which is stored in the repository database. More attributes are available for data export than for data import. It therefore makes sense to define separate filters for export and import.
1:1 relationships are generally based on a technical GUID attribute in the data model. Depending on the use case, either the technical GUID attribute or the business key from the target object (usually code or number) can be used for the import. For some business objects, an organization is required to convert the business key to the technical key. The relevant organization is normally not directly in the import source, but is specified via the voucher context. Further information on this can be found in the chapter Overview: Attributes.
Hash code business objects are referenced both in the header and in the line items of a supplier contract. These are technically related attribute groups that are always the same for many contracts and whose reuse therefore saves storage space in the database and in the main memory. Using a special conversion, the hash code business objects are represented as parts for export or import.
Certain supplier contract data such as local currency values, status and internal auxiliary attributes cannot be imported.
If you are not sure which format is suitable for the import file, proceed as follows: Enter a sample contract via the Supplier contracts application and export it using the filter for import in the desired format with the desired attributes. The resulting sample file can be used as a template for the import files to be generated.
The same rules apply when importing as when editing via the application. For example, an item in a saved line item can no longer be changed. Attribute values are ignored if they cannot be adopted in the current context. The same logic is applied when determining the default value, so that import and application behave identically. The same applies to data validations.
Procedure: Importing supplier contracts
1. Open the Import data application
2. Display the filter for this business object: com.cisag.app.purchasing.obj.PurchaseContract
- The filter for importing supplier contracts will be opened
3. Duplicate or create a new filter for this business object, if required
4. Change the already selected attributes of the filter, if required
5. Press the [Import data] button in the standard toolbar
- The Import data dialog window will open
6. You can make settings for the import file in the Import data dialog window. A description of the fields can be found in the Import data article.
7. Press the [In background] or [Immediately] button.
- The import will be executed
Creating new supplier contracts
Below you will find attributes required for the import of the header and line items as well as examples.
Required header attributes
The minimum required attributes per header object:
Attribute description | Attribute |
Purchasing organization
(In single-site systems with deactivated content-based authorizations, this is automatically the active OLTP client.) |
invoiceRecipientData.Partner |
Supplier contract type | Type |
Contract partner | supplierData.SupplierPartner |
Required for the supplier contract category Consignment | |
Valid until | expiryDate |
Consignment withdrawal declaration type | consignmentWithdrawalNoticeType |
Optionally, you can also transfer a number using the import. In this case, the number determined via the number range in accordance with the type is ignored. In addition, suitable conventions must be used to ensure that the number assigned via the import does not match a number that has already been assigned or is to be assigned automatically in the future.
If required, you can also specify a list of permitted organizations in the OrganizationAssignments
key:
Supplier contract call-off organization: OrganizationalUnit
Required line item attributes
The minimum required attributes per line item object:
Attribute description | Attribute |
Item | Item |
Required for these supplier contract categories:
|
|
Total quantity | totalQuantity |
Required for these supplier contract categories:
|
|
Total value | values.grossValue.amount |
Required for these supplier contract categories:
|
|
Valid until | expiryDate |
Required for this supplier contract category: Consignment | |
Valid from | beginDate |
Valid until | expiryDate |
Gross price | grossPrice |
Optionally, you can also enter a number for a new line item.
Example for the Quantity/date category
A corresponding minimum XML for contracts of the Quantity/date category with functional attributes and two line items has the following content, for example:
<?xml version="1.0" encoding="UTF-8"?> <semiramis xmlns="com.cisag.app.purchasing.obj.PurchaseContract" xsi:schemaLocation="com.cisag.app.purchasing.obj.PurchaseContract PurchaseContract.xsd" created="2005-12-28T07:36:29.729Z" locale="en-US-XMLSchemaCompliant" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <PurchaseContract xmlns="com.cisag.app.purchasing.obj.PurchaseContract"> <invoiceRecipientData> <partner>00000</partner> </invoiceRecipientData> <Type>100</Type> <supplierData> <SupplierPartner>10020</SupplierPartner> </supplierData> <Details> <Item>4711</Item> <totalQuantity> <amount>10</amount> <Uom>St.</Uom> </totalQuantity> <expiryDate>2006-12-30T23:00:01.000Z</expiryDate> </Details> <Details> <Item>4712</Item> <totalQuantity> <amount>20</amount> <Uom>St.</Uom> </totalQuantity> <expiryDate>2006-12-30T23:00:01.000Z</expiryDate> </Details> </PurchaseContract> </semiramis>
Example of the Value/date category
An analogous example for contracts of the Value/date category, which also contains prices and details for underdelivery and overdelivery, has the following content :
<?xml version="1.0" encoding="UTF-8"?> <semiramis xmlns="com.cisag.app.purchasing.obj.PurchaseContract" xsi:schemaLocation="com.cisag.app.purchasing.obj.PurchaseContract PurchaseContract.xsd" created="2005-12-28T07:36:29.729Z" locale="en-US-XMLSchemaCompliant" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <PurchaseContract xmlns="com.cisag.app.purchasing.obj.PurchaseContract"> <invoiceRecipientData> <partner>00000</partner> </invoiceRecipientData> <Type>200</Type> <supplierData> <SupplierPartner>10020</SupplierPartner> </supplierData> <Details> <Item>4711</Item> <values> <grossValue> <amount>10000.000000</amount> <Currency>EUR</Currency> </grossValue> </values> <grossPrice> <amount>10.000000</amount> <Currency>EUR</Currency> </grossPrice> <expiryDate>2006-12-30T23:00:01.000Z</expiryDate> <underDeliveryLimit>1.0000</underDeliveryLimit> <overDeliveryLimit>2.0000</overDeliveryLimit> </Details> <Details> <Item>4712</Item> <values> <grossValue> <amount>20000.000000</amount> <Currency>EUR</Currency> </grossValue> </values> <grossPrice> <amount>20.000000</amount> <Currency>EUR</Currency> </grossPrice> <expiryDate>2006-12-30T23:00:01.000Z</expiryDate> <underDeliveryLimit>3.0000</underDeliveryLimit> <overDeliveryLimit>4.0000</overDeliveryLimit> </Details> </PurchaseContract> </semiramis>
For the Fixed quantity and Fixed value categories, the expiryDate
value is ignored.
The remaining required attributes are added in these examples using the default values according to the master data.
You can also import additional values and use technical attributes instead of functional attributes. You can find a list of the attributes in the chapter Overview: Attributes.
Special features when editing a contract
You must note the following when editing an existing contract: When importing supplier contracts in multi-site systems and single-site systems with activated content-based authorizations, a purchasing organization is required. When editing an existing contract, the purchasing organization is always derived from the document stored in the database. Any different purchasing organization in the import source is ignored in this case.
To find a supplier contract stored in the database, either its technical identification (PurchaseContract:guid
) or its functional identification (Type
[or type
] and number
) is required.
All import options can be used for the call-off organizations – in particular deletion. Only the technical identification (partner identification) is required to find the stored partner.
All import options can be used for the items – including deletion in particular. Here too, either the technical identification (PurchaseContractDetail:guid
) or the functional identification (number
) is required to find a saved line item.
Changes via the import are only possible if no validation prevents this.
Automatic release after the import
If the import has been carried out successfully, you can have an edited supplier contract released automatically after the import. This option is particularly useful in combination with the opening status In process (see Type). This prevents a supplier contract that has not yet been fully imported from being used in subsequent vouchers. During release, the supplier contract has the status Invalid, meaning that the supplier contract cannot be used in this step either.
For this functionality, you must set the virtual header attribute autoRelease
to true for the relevant instance.
If this function is activated and there are no other errors, an additional information message is issued in the message log stating that the supplier contract was automatically released. If this was not possible, a warning is issued.
Tips for importing legacy data
If you want to use the import for legacy data transfer, the following is helpful:
Make sure that all master data has been transferred correctly. This will avoid unnecessary error processing for the contracts.
Overview: Attributes
The attributes of the individual business objects that are available for import are listed below. The corresponding relationship name is also included for foreign key attributes. The identification and mandatory fields are subject to change and can be extended by making adjustments.
For some business objects, an organization is required for the conversion of functional keys to technical keys. In the attribute lists, this is indicated by the following notes in the Attribute column.
- Purchasing organization (always according to the header)
- Firm (always according to the header)
The identification attributes (key attributes) are also marked with a (K).
Header data
Supplier contract (PurchaseContract)
Attribute | Relationship | Explanation |
autoRelease |
Release automatically (virtual attribute); see the chapter Automatic release after import. | |
beginDate |
Valid from
|
|
classification1
(purchasing organization) |
Classification1 |
Classification 1 |
classification2
(purchasing organization) |
Classification2 |
Classification 2 |
classification3
(purchasing organization) |
Classification3 |
Classification 3 |
classification4
(purchasing organization) |
Classification4 |
Classification 4 |
classification5
(purchasing organization) |
Classification5 |
Classification 5 |
confirmationRequired
and
|
Confirmation required | |
consignmentOrganizationAssignmentType |
Consignment usage
|
|
consignmentWithdrawalNoticeType |
ConsignmentWithdrawalNoticeType |
Consignment withdrawal declaration type
|
consignmentWithdrawalSummaryLevel |
Summarize individual withdrawals
|
|
date |
Entry date | |
deliveryData |
See the chapter Delivery data (deliveryData). | |
deliveryRecipientData.careOf |
deliveryRecipientData.CareOfPartner |
Delivery recipient: Care of |
deliveryRecipient |
Delivery recipient: Care of – Name | |
deliverySupplierData |
See the chapter Supplier data (supplierData, deliverySupplierData, invoiceSupplierData). | |
expiryDate |
Valid to
|
|
guid (K) |
Technical identification for changing/deleting already saved data – if known. | |
invoiceRecipientData.careOf |
invoiceRecipientData.CareOfPartner |
Purchasing organization: Care of |
invoiceRecipientData.careOfName |
Purchasing organization: Care of – Name | |
invoiceRecipientData.partner |
invoiceRecipientData.Partner |
Purchasing organization |
invoiceSupplierData |
See the chapter Supplier data (supplierData, deliverySupplierData, invoiceSupplierData). | |
invoicingData |
See the chapter Invoicing data (invoicingData). | |
number (K) |
Number (technical identification), optional for newly created data – otherwise determined automatically.
Mandatory if the guid was not specified when changing/deleting. |
|
orderDeliveryData |
See the chapter Order delivery data (orderDeliveryData). | |
OrganizationAssignments |
See the chapter Call-off organizations (PurchaseContractOrganizationAssignment). | |
outputSettings
|
Output settings
|
|
responsible |
ResponsiblePartner |
Employee responsible |
status |
General status (only Released, Blocked)
|
|
supplierContractData.salesContract |
External voucher number | |
supplierContractData.date.value |
External voucher date | |
supplierData |
See the chapter Supplier data (supplierData, deliverySupplierData, invoiceSupplierData). | |
TextAssignments |
See the chapter Texts (TextAssignments). | |
type (K) |
Type |
Type (technical identification)
Mandatory if the guid was not specified when changing/deleting. |
Call-off organizations (PurchaseContractOrganizationAssignment)
Attribute | Relationship | Explanation |
organizationalUnit (K) |
OrganizationalUnit |
Supplier contract call-off organization |
Supplier data (supplierData, deliverySupplierData, invoiceSupplierData)
The supplier data in the following usages is stored in the database as a hash code business object and is displayed as a part for export or import. The same applies to the address data.
The following part names have been assigned analogous to the technical attribute names:
supplierData
SupplierdeliverySupplierData
Delivery partnerinvoiceSupplierData
Invoicing party
The following attributes therefore exist once per use.
Attribute | Relationship | Explanation |
addressData.city |
Address – City | |
addressData.country |
addressData.Country |
Address – Country |
addressData.district |
Address – District | |
addressData.poBox |
Address – P.O. box | |
addressData.poBoxCity |
Address – P.O. box city | |
addressData.poBoxPostalCode |
Address – PO Box postal code | |
addressData.postalCode |
Address – Postal code | |
addressData.region |
addressData.Region |
Address – Region |
addressData.street |
Address – Street | |
careOf |
CareOfPartner |
Care of |
careOfName |
Care of – Name | |
name |
Supplier name | |
supplier |
SupplierPartner |
Supplier
|
Delivery data (deliveryData)
The delivery data is stored in the database as a hash code business object and is represented as a part for the export or import.
Attribute | Relationship | Explanation |
deliveryRestriction |
Delivery restriction | |
deliveryTerms |
DeliveryTerms |
Delivery term |
deliveryTermsLocation |
Delivery term location reference | |
shippingTerms |
ShippingTerms |
Shipping terms |
Invoicing data (invoicingData)
Some invoice data is stored in the database as a hash code business object and is represented as a part for export or import.
Attribute | Relationship | Explanation |
currency |
Currency |
Currency
|
paymentMethod (Firm) |
PaymentMethod |
Payment method |
paymentTerms (Firm) |
PaymentTerms |
Payment terms
|
Order delivery data (orderDeliveryData)
The order delivery data is stored in the database as a hash code business object and is displayed as a part for the export or import.
Attribute | Relationship | Explanation |
carrier |
Carrier |
Carrier |
storageArea.warehouse |
Warehouse (code) |
Texts (TextAssignments)
Attribute | Relationship | Explanation |
code |
Text module (optional) | |
document |
Voucher | |
sequence |
Number | |
text |
Texts per language (only used if no text module has been specified)
See the chapter text |
|
type |
Text category |
Attribute | Relationship | Explanation |
contentType |
Content category | |
language |
Language | |
text |
Text |
The following example contains two basic texts. The header text references the text module “TXT1”, and the second text contains a free footer text for the languages de and en:
<?xml version="1.0" encoding="UTF-8"?> <semiramis xmlns="com.cisag.app.purchasing.obj.PurchaseContract" xsi:schemaLocation="com.cisag.app.purchasing.obj.PurchaseContract PurchaseContract.xsd" created="2005-12-28T07:36:29.729Z" locale="en-US-XMLSchemaCompliant" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <PurchaseContract xmlns="com.cisag.app.purchasing.obj.PurchaseContract"> <invoiceRecipientData> <Partner>00000</Partner> </invoiceRecipientData> <Type>100</Type> <supplierData> <SupplierPartner>10020</SupplierPartner> </supplierData> <TextAssignments> <code>TXT1</code> <sequence>10</sequence> <document index="0">PURCHASE_CONTRACT</document> <type>HEADER</type> </TextAssignments> <TextAssignments> <code></code> <sequence>20</sequence> <document index="0">PURCHASE_CONTRACT</document> <type>FOOTER</type> <text> <language>de</language> <text>Dies ist ein Beispieltext.</text> <contentType>text/plain</contentType> </text> <text> <language>en</language> <text>This is an example text.</text> <contentType>text/plain</contentType> </text> </TextAssignments> </PurchaseContract> </semiramis>
You can also use various formatting options for the texts. If you need examples of specific formatting, it is best to create a sample voucher with the desired text formatting and export it.
com.cisag.app.general.order.bi.applyAllwaysTextDefaults
has the value true, the default values are always determined and combined with any existing texts in the import file. Please note that the numbers of the text lines must be selected appropriately and that the result is only one text line with one item text.Line item data: Supplier contract line items (PurchaseContractDetail)
Attribute | Relationship | Explanation |
beginDate |
Valid from
|
|
deliveryRecipientData.careOf |
deliveryRecipientData.CareOfPartner |
Delivery recipient: Care of |
deliveryRecipientData.careOfName |
Delivery recipient: Care of – Name | |
ean |
European Article Number (EAN)
Further information can be found in the article Import voucher line item by means of an EAN. |
|
expiryDate |
Valid to
|
|
grossPrice
|
Currency |
Gross price
|
guid (K) |
Technical identification for the modification/deletion of already stored data – if known. | |
item |
Item |
Item |
number (K) |
Line item number (technical identification), optional for newly created data – otherwise determined automatically.
Mandatory if the guid was not specified when changing/deleting. |
|
overDeliveryLimit |
Overdelivery |
|
priceDimension |
Price dimension | |
priceUom |
PriceUom |
Price unit |
reference |
Reference | |
selfBilling |
Credit note method | |
status |
General status (only Released, Blocked) | |
storageArea.warehouse |
Warehouse (code) | |
supplierItemNumber |
Supplier item number
Further information can be found in the article Import voucher line item by means of an EAN. |
|
TextAssignments |
See the chapter Texts (TextAssignments). | |
totalQuantity
|
Uom |
Total quantity (for quantity contracts)
|
underDeliveryLimit |
Underdelivery | |
uomObligation |
Binding unit | |
uomObligationOrigin |
Origin of binding unit | |
values.grossValue |
Total value (for value contracts) |