pCon.configurator Online Plugin - OEX (1.5.0)

Download OpenAPI specification:

Overview

EAIWS Plugin that generates OEX exports.

API Endpoints

All API endpoints are under the plugin-path (baseurl).

baseurl: http://<eaiws-server>/EAIWS/plugins/oex/

Eg.: https://s1.eaiws.pcon-solutions.com/4.18.2-001/EAIWS/plugins/oex/export

Errors

API errors fall into two categories. Some errors will abort the request while others will be suppressed. Errors that abort will either have a json body or rarely a text response. In the case of aborted errors it is good practice to check the http error code in case of a text response. Suppressed errors are appended as a list to a successfull (eg.: http status code 200) request response.

Example of an aborted error:

{
    "additionalInformation": {},
    "cause": [],
    "code": 422,
    "id": "request-session-not-found",
    "message": "No active session was found for the specified session id.",
    "scopes": [],
    "type": "request"
}

Example of an appended suppressed error:

{
    "errors": [
      {
        "additionalInformation": {},
        "cause": ["Some exception..."],
        "id": "item-text-error",
        "message": "Failed to get item app data!",
        "scopes": ["ERROR"],
        "type": "item"
      }  
    ],
    "archive": {
        "name": "oex-orders_v3-0_2342_20260116-102327.zip",
        "url": "https://test.eaiws.pcon-solutions.com/4.18.3-003/session-cache/ff16b05e-f395-4381-9e7b-7f226eca8c8b/cache/a9f53a84-e469-41d1-9384-f541fae8ffed/oex-orders_v3-0_2342_20260116-102327.zip"
    },      
    "items": [
        "1b0bbb5d-916f-4a60-b92e-500cc8838420",
        "4071aa9f-4121-4043-a949-db80dedef907",
        "29bf5739-efe6-4bd6-bca4-55a9f41255f6",
        "08d85a39-522b-4aed-a66c-f946d75f0cf9",
        "99441068-6bd2-413c-a11c-91b532b752b7",
        "5fea76b6-0d8b-4cce-b219-6675cfc46278",
        "5f3ec2ff-65d2-4523-98f1-bca7f24175f2",
        "0780f459-da60-4976-888c-dae0fdf34d86",
        "bbe77938-9848-42a0-9579-24839dc2765f",
        "87515797-6e3b-499b-992e-1596de1c7f4b"
    ],
    "name": "oex-orders_v3-0_2342_20260116-102327",
    "obx": {
        "name": "oex-orders_v3-0_2342_20260116-102327.obx",
        "url": "https://test.eaiws.pcon-solutions.com/4.18.3-003/session-cache/ff16b05e-f395-4381-9e7b-7f226eca8c8b/cache/a9f53a84-e469-41d1-9384-f541fae8ffed/oex-orders_v3-0_2342_20260116-102327.obx"
    },
    "oex": {
        "name": "oex-orders_v3-0_2342_20260116-102327.xml",
        "url": "https://test.eaiws.pcon-solutions.com/4.18.3-003/session-cache/ff16b05e-f395-4381-9e7b-7f226eca8c8b/cache/a9f53a84-e469-41d1-9384-f541fae8ffed/oex-orders_v3-0_2342_20260116-102327.xml"
    },
    "url": "https://test.eaiws.pcon-solutions.com/4.18.3-003/session-cache/ff16b05e-f395-4381-9e7b-7f226eca8c8b/cache/a9f53a84-e469-41d1-9384-f541fae8ffed/oex-orders_v3-0_2342_20260116-102327.xml"
}

Suppressed errors do not have an error code and instead have one of two scopes: WARN or ERROR. A response can have multiple suppressed errors or warnings attached to it.

Default oex config

Retrieves the default oex config for use with the export. See response samples. Some settings are explained below.

Valid settings for:

  • documentType: "ORDERS" | "QUOTES"
  • oexVersion: "3.1" | "3.0" | "2.3"
  • When splitDocumentByManufacturers is true, manufacturerId must be supplied
  • exportImages must be true for images to be embedded as Base64 in the OEX else no images are exported.

Addresses is an array of address objects of type AddressData:

  • All fields with ? are optional

AddressData fields:

{
    addressType: "SoldTo" | "ShipTo" | "BillTo" | "Payer" | "Carrier" | "Supplier" | "EndUser" | "InstallationCompany" | "InstallationLocation" | "Branch" | "InCharge";
    addressNumber?: string;
    addressId?: string;
    title?: string;
    name1?: string;
    name2?: string;
    name3?: string;
    name4?: string;
    street?: string;
    street2?: string;
    countryCode?: string;
    postalCode?: string;
    location?: string;
    district?: string;
    regionCode?: string;
    poBox?: string;
    taxCode?: string;
    taxCodeEU?: string;
    taxCodeUSA?: string;
    commAddresses?: Array<CommAddress>;
    contacts?: Array<ContactData>;    
}

CommAddress fields:

{
    value: string;
    type: "Phone" | "Fax" | "Mobile" | "WWW" | "EMail";
    scope: "Business" | "Private";
}

ContactData fields:

{
    contactNumber?: string;
    title?: string;
    firstName?: string;
    lastName?: string;
    commAddresses?: Array<CommAddress>;
    id: number;
    contactType?: "Sale" | "Warehouse" | "Installer" | "Support" | "Employee" | "Client";
}

Responses

Response samples

Content type
application/json
{
  • "additionalAgreement": null,
  • "additionalTextId": "@add",
  • "addresses": [ ],
  • "appName": "pCon.basket Online",
  • "appVersion": {
    },
  • "archiveFilename": null,
  • "attachOBX": true,
  • "attachOEX": true,
  • "attachPDF": false,
  • "calculationPurchase": true,
  • "calculationSales": true,
  • "clientILN": null,
  • "clientNo": null,
  • "commission": null,
  • "conditionNo": null,
  • "dealerAsSGR": false,
  • "delivery": null,
  • "dispatchNotes": null,
  • "docNumber": null,
  • "documentType": "ORDERS",
  • "exportAlternativeArticles": true,
  • "exportFolders": true,
  • "exportImages": false,
  • "exportInvisibleFeatures": true,
  • "exportRoomInformation": true,
  • "exportSetArticle": true,
  • "exportTextArticles": true,
  • "featureInARTL": false,
  • "hideDiscounts": false,
  • "hideHeaderDiscounts": false,
  • "hidePurchaseDiscounts": false,
  • "hideSalesDiscounts": false,
  • "identicateUser": false,
  • "ignoreITEMText": false,
  • "manufacturerId": null,
  • "manufacturerIds": [ ],
  • "obxFilename": null,
  • "oexFilename": null,
  • "oexVersion": "3.0",
  • "orderInfo": null,
  • "orderType": null,
  • "pdfFilename": null,
  • "pdfLogoImage": null,
  • "projectNumber": null,
  • "projectUserName": null,
  • "refNumber": false,
  • "reporterTemplateKey": null,
  • "salesGroup": null,
  • "salesOrganisation": null,
  • "shipToCode": null,
  • "specialModelInfoTextId": "71",
  • "splitDocumentByManufacturers": false,
  • "structuralInformation": true,
  • "useSalesOrgAsFilePrefix": false,
  • "useSCOrderInfo": false,
  • "useShipToCode": false,
  • "vendorILN": null,
  • "vendorNo": null,
  • "versionInOrder": false
}

Generate OEX

Generates OEX export. This can also include an OBX, PDF etc. depending on the OEX config. See the config.json request for a sample config.

Important note about the sample request body: This is only an example. Do not use as is. Consult the OEX config and see the pCon.basket Online requests for reference. The imageOptions parameter is only shown in this example to show that it is possible to override image generation parameters. It is recommended not to send imageOptions and let the Plugin use the default cached images instead.

Request Body schema: application/json
sessionId
required
string

uuid of the current session.

calculationScheme
string
Default: "STDB2B_WBK"

Scheme for the price calculation.

preferredImageColumn
string
Default: "73bd68f4-da62-11d8-b9d6-00e081513ada"

User defined image column. Used to retrieve a user defined image for an article before getting an internal image.

imageOptions
Array of strings

Image options to override the default image. Reference the EAIWS documentation for valid image options.

config
object

OEX config. See default oex config request for more information on config options.

Responses

Request samples

Content type
application/json
{
  • "sessionId": "7c57526d-d1ea-406d-8b87-f61b7263788c",
  • "calculationScheme": "STDB2B_WBK",
  • "preferredImageColumn": "cc080d73-88f4-4bfc-8ec1-e7e2ad30739a",
  • "imageOptions": [
    ],
  • "config": {
    }
}

Response samples

Content type
application/json
{}

List of Manufacturers

Returns the list of manufacturers that will be included in the OEX for the current project. Can be used to filter which manufacturers are exported.

Request Body schema: application/json
sessionId
required
string

uuid of the current session.

Responses

Request samples

Content type
application/json
{
  • "sessionId": "7c57526d-d1ea-406d-8b87-f61b7263788c"
}

Response samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    }
]

Changelog

Changes since v1.0.0

1.5.0 - 16.10.2025

  • Added fileStoragePath to plugin config in etc/plugins/oex/config.xml
  • Updated to JAVA 21.
  • Removed user descriptions from embedded OBX in OEX 3.1
  • itmOrgData of type POS now always exports the article list position of the original project.
  • Updated the commons-exports API to always save the original position to item appdata.
  • Added calculation line TTNE (Tax Net Total) as the reference for the TTAX line.
  • Added aTaxCode (Tax Code) and aCondRef (Reference to TTNE) attributes to the TTAX line.

1.4.0 - 22.04.2025

  • Updated OEX 3.1 to not include the docCalculationChanges node in item OBX.
  • Changed the behaviour of OBX in OEX 3.1 to also never include the quantity node.
  • Fixed an issue in the commons-exports API that caused Set-Article parts to be incorrectly removed sometimes.
  • Article OBX references in OEX 3.1 no longer export pricing information. Quantity in this case is always set to 1.
  • SNET and TNET itmPricing values are now correctly exporting the position net value before header calculation.
  • Added SNEH and TNEH itmPricing values to represent final net value after header discounts and surcharges.
  • User texts are no longer exported for OEX exports of type ORDERS.

1.3.2 - 19.11.2024

  • Fixed error that caused incorrect quantity in articles with children when set articles where removed.
  • User or Set-Articles no longer contain an OBX item reference in OEX v3.1

1.3.1 - 15.11.2024

  • Fixed incorrect adjustment made to vOrderNumber and vQuoteNumber in OEX v3.0 & v3.1. See OEX issue #13

1.3.0 - 15.10.2024

  • Fixed minor issue with concurrent handling of base64 images.
  • Changed oex version in filename to be seperated with -. Eg.: v3-1
  • Updated filename pattern to include the OEX version in the filename.
  • Improved api request exceptions and error messages.
  • Suppressed errors are now handled using the SuppressedErrorHandler.
  • Fixed bug where TopLevelNumber was missing when the view filtered out one item in the hierarchy.
  • Fixed issue with escalating thread use when converting base64 images.
  • No longer export OBX file with OEX version 3.1.
  • In OEX version 3.1 the attachOBX option now embeds OBX directly into the oex file for each article.
  • Fixed incorrect handling of vOrderNumber and vQuoteNumber in OEX v3.0 & v3.1
  • Added special handling of project number for Sedus. OEX Issue #9
  • Now always exports quote number from the header/project data as hdrDocNo of type QUO.
  • Updated to EAIWS v1.16alpha1

1.2.0 - 17.05.2024

  • Changed vVendorArticleNo to always be set to the BASE article number.
  • Session locale now depends on the SoldTo address country and project language with the application locale as fallback.
  • Added commission, additionalAgreement & dispatchNotes fields to OEXConfig.
  • Excluding articles with negative quantity from the export.
  • Updated to use ICU4J NumberFormatter instead of native NumberFormat.
  • Addresses without an OEX address type are no longer exported with OEX. Eg.: InCharge.

1.1.1 - 19.10.2023

  • [Patch] Article numbers (BASE, FINAL) are now exported for Pseudo-Articles as well (previously excluded).

1.1.0 - 17.10.2023

  • Updated commons-exports to fix project factory issue.
  • Fixed logging error.
  • Fixed NullPointerException when calling isZero on some calculation lines.
  • Added support for simple version numbers when requesting an oex export. Eg.: 2.3, 3.0, 3.1
  • Added pdfLogoImage to OEXConfig so that the standard-order report can have a logo.
  • Added logging for start, failed & completed status of exports.
  • Fixed excessive UnknownItemIdException being logged when an article doesn't have a set article.
  • Implemented new OEX export workflow using the Apache Velocity Engine.
  • Added the OEX 3.1 export.
  • Added TNET for purchase calculation.
  • Fixed manufacturers.json request initializing all article models slowing down the request.
  • Fixed some minor issues with both OEX 2.3 and 3.0 exports.
  • Removed ORM based OEX export implementation of versions 2.3 and 3.0.

1.0.3 - 19.06.2023

  • Fixed set articles not being exported when the first child did not have a matching manufacturer.

1.0.2 - 13.06.2023

  • Fixed issue of manufacturers.json request using the incorrect view after patch v1.0.1

1.0.1 - 12.06.2023

  • Removed viewId, items & matchBasketItemIds from generate request.
  • Switched to internal view for handling visibility of NonOrder & NonOffer Articles.
  • Fixed alternative article test. It was testing for both Pseudo and InactivePosition.
  • The current date is now set to use the session ZoneId.

1.0.0 - 26.05.2023

  • Updated plugin classes to inherit from commons-exports
  • Improved logging
  • Major refactor of package structure
  • Implemented project article filter
  • Changed export request to use a new project with a modified article list
  • Addresses from the request are used to override those in the new internal project
  • Added zip, oex and obx urls to the ExportResult
  • Only cache base64 images if the exportImages flag is set to true.
  • Added PDF report integration to the OEX plugin
  • PDF reports are now attached to the archive when attachPDF and reporterTemplateKey are set.
  • Added manufacturerIds to OEXConfig and deprecated manufacturerId
  • Removed genson bundle. Imported from commons-exports now
  • Added exportSetArticle option to OEX config
  • Added optional attachOEX parameter to OEXConfig. Defaults to true.
  • Added HIDDEN_DISCOUNT lines to sales price.