Returns a list of valid article-relation types, and its description as a key/value pair
Used in ApiProduct as ApiArticleAccessory items in the fields ArticleAccessories and ArticleAccessoryFor
Parameters
ApiRequest request
Returns
ApiResponse
<List<KeyValuePair<string, string>>>
Throws
InternalErrorFault
if not authorized<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:apirequest='Prodibas.API.V1' xmlns:requestparams='Prodibas.API.V1.Parameters'> <soapenv:Header/> <soapenv:Body> <apirequest:GetArticleRelationTypes> <apirequest:request> <requestparams:Authentication> <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier> <requestparams:Industry>VVS</requestparams:Industry> <requestparams:Key>DEVMANU616</requestparams:Key> </requestparams:Authentication> </apirequest:request> </apirequest:GetArticleRelationTypes> </soapenv:Body> </soapenv:Envelope>
<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <GetArticleRelationTypesResponse xmlns='Prodibas.API.V1'> <GetArticleRelationTypesResult xmlns:a='Prodibas.API.V1.Parameters' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'> <a:Data xmlns:b='http://schemas.datacontract.org/2004/07/System.Collections.Generic'> <b:KeyValuePairOfstringstring> <b:key>Accessory</b:key> <b:value>Tillbehör</b:value> </b:KeyValuePairOfstringstring> <b:KeyValuePairOfstringstring> <b:key>Spare</b:key> <b:value>Reservdel</b:value> </b:KeyValuePairOfstringstring> <b:KeyValuePairOfstringstring> <b:key>ConsistsOf</b:key> <b:value>Består av</b:value> </b:KeyValuePairOfstringstring> <b:KeyValuePairOfstringstring> <b:key>OptionalMandatoryAccessory</b:key> <b:value>Valbart obligatoriskt tillbehör</b:value> </b:KeyValuePairOfstringstring> <b:KeyValuePairOfstringstring> <b:key>Delete</b:key> <b:value>Ta bort</b:value> </b:KeyValuePairOfstringstring> </a:Data> <a:User i:nil='true' xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/> </GetArticleRelationTypesResult> </GetArticleRelationTypesResponse> </s:Body> </s:Envelope>
Parameters
ApiRequest request
Returns
ApiResponse
<List<ApiCountry TEST>>
Throws
InternalErrorFault
if not authorized<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:apirequest='Prodibas.API.V1' xmlns:requestparams='Prodibas.API.V1.Parameters'> <soapenv:Header/> <soapenv:Body> <apirequest:GetCountries> <apirequest:request> <requestparams:Authentication> <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier> <requestparams:Industry>VVS</requestparams:Industry> <requestparams:Key>DEVMANU616</requestparams:Key> </requestparams:Authentication> </apirequest:request> </apirequest:GetCountries> </soapenv:Body> </soapenv:Envelope>
<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <GetCountriesResponse xmlns='Prodibas.API.V1'> <GetCountriesResult xmlns:a='Prodibas.API.V1.Parameters' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'> <a:Data xmlns:b='Prodibas.API.V1.Model'> <b:ApiCountry> <b:Identifier>AD</b:Identifier> <b:Name>Andorra (AD)</b:Name> </b:ApiCountry> <b:ApiCountry> <b:Identifier>AE</b:Identifier> <b:Name>Förenade Arabemiraten (AE)</b:Name> </b:ApiCountry> ... </a:Data> <a:User i:nil='true' xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/> </GetCountriesResult> </GetCountriesResponse> </s:Body> </s:Envelope>
NOTE! The field
ApiProduct.DangerousItem
is obsolete. Please use text field DangerousItemUnNumber
instead!
Parameters
ApiRequest request
Returns
ApiResponse
<List<KeyValuePair<char, string>>>
Throws
InternalErrorFault
if not authorizedValues, unlikely to change but may change one day
<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:apirequest='Prodibas.API.V1' xmlns:requestparams='Prodibas.API.V1.Parameters'> <soapenv:Header/> <soapenv:Body> <apirequest:GetDangerousItems> <apirequest:request> <requestparams:Authentication> <requestparams:CompanyIdentifier>MANU999</requestparams:CompanyIdentifier> <requestparams:Industry>VVS</requestparams:Industry> <requestparams:Key>DEVMANU999</requestparams:Key> </requestparams:Authentication> </apirequest:request> </apirequest:GetDangerousItems> </soapenv:Body> </soapenv:Envelope>
<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <GetDangerousItemsResponse xmlns='Prodibas.API.V1'> <GetDangerousItemsResult xmlns:a='Prodibas.API.V1.Parameters' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'> <a:Data xmlns:b='http://schemas.datacontract.org/2004/07/System.Collections.Generic'> <b:KeyValuePairOfcharstring> <b:key>32</b:key> <b:value>None</b:value> </b:KeyValuePairOfcharstring> <b:KeyValuePairOfcharstring> <b:key>66</b:key> <b:value>Flammable</b:value> </b:KeyValuePairOfcharstring> <b:KeyValuePairOfcharstring> <b:key>69</b:key> <b:value>Explosive</b:value> </b:KeyValuePairOfcharstring> </a:Data> <a:User i:nil='true' xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/> </GetDangerousItemsResult> </GetDangerousItemsResponse> </s:Body> </s:Envelope>
Parameters
ApiRequest request
Returns
ApiResponse
<List<string>>
Throws
InternalErrorFault
if not authorized<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:apirequest='Prodibas.API.V1' xmlns:requestparams='Prodibas.API.V1.Parameters'> <soapenv:Header/> <soapenv:Body> <apirequest:GetEtimFeatureTypes> <apirequest:request> <requestparams:Authentication> <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier> <requestparams:Industry>VVS</requestparams:Industry> <requestparams:Key>DEVMANU616</requestparams:Key> </requestparams:Authentication> </apirequest:request> </apirequest:GetEtimFeatureTypes> </soapenv:Body> </soapenv:Envelope>
<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <GetEtimFeatureTypesResponse xmlns='Prodibas.API.V1'> <GetEtimFeatureTypesResult xmlns:a='Prodibas.API.V1.Parameters' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'> <a:Data xmlns:b='http://schemas.datacontract.org/2004/07/System.Collections.Generic'> <b:KeyValuePairOfcharstring> <b:key>65</b:key> <b:value>Alphanumeric</b:value> </b:KeyValuePairOfcharstring> ... </a:Data> <a:User i:nil='true' xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/> </GetEtimFeatureTypesResult> </GetEtimFeatureTypesResponse> </s:Body> </s:Envelope>
NOTE! This method is not yet implemented!
Lists all ETIM versions that Prodibas currently supports. The plan is to always support 3 ETIM versions: previous, current and next.
Parameters
ApiRequest request
Returns
ApiResponse<List<
ApiEtimVersion>>
Throws
InternalErrorFault
if not authorizedParameters
ApiRequest request
Returns
ApiResponse<List<ApiPackageType>>
Throws
InternalErrorFault
if not authorized<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:apirequest='Prodibas.API.V1' xmlns:requestparams='Prodibas.API.V1.Parameters'> <soapenv:Header/> <soapenv:Body> <apirequest:GetPackageTypes> <apirequest:request> <requestparams:Authentication> <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier> <requestparams:Industry>VVS</requestparams:Industry> <requestparams:Key>DEVMANU616</requestparams:Key> </requestparams:Authentication> </apirequest:request> </apirequest:GetPackageTypes> </soapenv:Body> </soapenv:Envelope>
<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <GetPackageTypesResponse xmlns='Prodibas.API.V1'> <GetPackageTypesResult xmlns:a='Prodibas.API.V1.Parameters' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'> <a:Data xmlns:b='Prodibas.API.V1.Model'> <b:ApiPackageType> <b:Id>300</b:Id> <b:Name>oförpackat/lösgods</b:Name> </b:ApiPackageType> <b:ApiPackageType> <b:Id>303</b:Id> <b:Name>påse/plastpåse</b:Name> </b:ApiPackageType> ... </a:Data> <a:User i:nil='true' xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/> </GetPackageTypesResult> </GetPackageTypesResponse> </s:Body> </s:Envelope>
Parameters
ApiRequest request
Returns
ApiResponse<List<ApiPackagingFunction>>
Throws
InternalErrorFault
if not authorized<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:apirequest='Prodibas.API.V1' xmlns:requestparams='Prodibas.API.V1.Parameters'> <soapenv:Header/> <soapenv:Body> <apirequest:GetPackagingFunctions> <apirequest:request> <requestparams:Authentication> <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier> <requestparams:Industry>VVS</requestparams:Industry> <requestparams:Key>DEVMANU616</requestparams:Key> </requestparams:Authentication> </apirequest:request> </apirequest:GetPackagingFunctions> </soapenv:Body> </soapenv:Envelope>
<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <GetPackagingFunctionsResponse xmlns='Prodibas.API.V1'> <GetPackagingFunctionsResult xmlns:a='Prodibas.API.V1.Parameters' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'> <a:Data xmlns:b='Prodibas.API.V1.Model'> <b:ApiPackagingFunction> <b:Code>ANTI_TAMPERING</b:Code> <b:Description>En metod som används...</b:Description> <b:Id>1</b:Id> <b:Text>Förseglad</b:Text> </b:ApiPackagingFunction> <b:ApiPackagingFunction> <b:Code>ANTISEPTIC</b:Code> <b:Description>En process där en steril...</b:Description> <b:Id>2</b:Id> <b:Text>Antiseptisk</b:Text> </b:ApiPackagingFunction> ... </a:Data> <a:User i:nil='true' xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/> </GetPackagingFunctionsResult> </GetPackagingFunctionsResponse> </s:Body> </s:Envelope>
Parameters
ApiRequest request
Returns
ApiResponse<List<ApiPalletType>>
Throws
InternalErrorFault
if not authorized<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:apirequest='Prodibas.API.V1' xmlns:requestparams='Prodibas.API.V1.Parameters'> <soapenv:Header/> <soapenv:Body> <apirequest:GetPalletTypes> <apirequest:request> <requestparams:Authentication> <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier> <requestparams:Industry>VVS</requestparams:Industry> <requestparams:Key>DEVMANU616</requestparams:Key> </requestparams:Authentication> </apirequest:request> </apirequest:GetPalletTypes> </soapenv:Body> </soapenv:Envelope>
<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <GetPalletTypesResponse xmlns='Prodibas.API.V1'> <GetPalletTypesResult xmlns:a='Prodibas.API.V1.Parameters' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'> <a:Data xmlns:b='Prodibas.API.V1.Model'> <b:ApiPalletType> <b:Code>10</b:Code> <b:Description>Halvpall med måtten...</b:Description> <b:Id>1</b:Id> <b:Name>Pall 800x600 mm (ISO 0-pall)</b:Name> </b:ApiPalletType> <b:ApiPalletType> <b:Code>11</b:Code> <b:Description>Plan pall med måtten...</b:Description> <b:Id>2</b:Id> <b:Name>Pall 800x1200 mm (ISO 1-pall)</b:Name> </b:ApiPalletType> ... </a:Data> <a:User i:nil='true' xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/> </GetPalletTypesResult> </GetPalletTypesResponse> </s:Body> </s:Envelope>
There are around 1000 product groups for VVS and 500 for SEG. They are organized in a 3-level deep tree structure.
Every product is always linked to exact one product group.
Product groups and their properties are subject to change when system administrators choose to.
NOTE! For VVS there is a newer 4-level structure. Use input parameter version
with value 2 in order to retrieve these.
Parameters
ApiRequest request
Returns
ApiResponse
<List<ApiProductGroupDetailed>>
Throws
InternalErrorFault
if not authorized<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:apirequest='Prodibas.API.V1' xmlns:requestparams='Prodibas.API.V1.Parameters'> <soapenv:Header/> <soapenv:Body> <apirequest:GetProductGroups> <apirequest:request> <requestparams:Authentication> <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier> <requestparams:Industry>VVS</requestparams:Industry> <requestparams:Key>DEVMANU616</requestparams:Key> </requestparams:Authentication> </apirequest:request> <apirequest:version>1</apirequest:version> </apirequest:GetProductGroups> </soapenv:Body> </soapenv:Envelope>
<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <GetProductGroupsResponse xmlns='Prodibas.API.V1'> <GetProductGroupsResult xmlns:a='Prodibas.API.V1.Parameters' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'> <a:Data xmlns:b='Prodibas.API.V1.Model'> <b:ApiProductGroupDetailed> <b:AllowUse>true</b:AllowUse> <b:DisplayAs>01 Gjutjärnsrör</b:DisplayAs> <b:FullIdentifier>01</b:FullIdentifier> <b:FullName>Gjutjärnsrör</b:FullName> <b:Id>1</b:Id> <b:Identifier>01</b:Identifier> <b:IsOpenForCandidates>false</b:IsOpenForCandidates> <b:IsSelectable>false</b:IsSelectable> <b:Level>1</b:Level> <b:Name>Gjutjärnsrör</b:Name> <b:ParentId i:nil='true'/> <b:Range i:nil='true'/> <b:RangeFormatted i:nil='true'/> </b:ApiProductGroupDetailed> <b:ApiProductGroupDetailed> <b:AllowUse>true</b:AllowUse> <b:DisplayAs>02 Tryckrörssystem</b:DisplayAs> <b:FullIdentifier>0102</b:FullIdentifier> <b:FullName>Gjutjärnsrör > Tryckrörssystem</b:FullName> <b:Id>2</b:Id> <b:Identifier>02</b:Identifier> <b:IsOpenForCandidates>false</b:IsOpenForCandidates> <b:IsSelectable>false</b:IsSelectable> <b:Level>2</b:Level> <b:Name>Tryckrörssystem</b:Name> <b:ParentId>1</b:ParentId> <b:Range i:nil='true'/> <b:RangeFormatted i:nil='true'/> </b:ApiProductGroupDetailed> <b:ApiProductGroupDetailed> <b:AllowUse>true</b:AllowUse> <b:DisplayAs>00 Rör</b:DisplayAs> <b:FullIdentifier>010200</b:FullIdentifier> <b:FullName>Gjutjärnsrör > Tryckrörssystem > Rör</b:FullName> <b:Id>3</b:Id> <b:Identifier>00</b:Identifier> <b:IsOpenForCandidates>true</b:IsOpenForCandidates> <b:IsSelectable>true</b:IsSelectable> <b:Level>3</b:Level> <b:Name>Rör</b:Name> <b:ParentId>2</b:ParentId> <b:Range> <b:Max>1025170</b:Max> <b:Min>1024660</b:Min> </b:Range> <b:RangeFormatted> <b:Max>1025170</b:Max> <b:Min>1024660</b:Min> </b:RangeFormatted> </b:ApiProductGroupDetailed> ... </a:Data> <a:User i:nil='true' xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/> </GetProductGroupsResult> </GetProductGroupsResponse> </s:Body> </s:Envelope>
Parameters
ApiRequest request
Returns
ApiResponse
<List<string>>
Throws
InternalErrorFault
if not authorized<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:apirequest='Prodibas.API.V1' xmlns:requestparams='Prodibas.API.V1.Parameters'> <soapenv:Header/> <soapenv:Body> <apirequest:GetProductInfoLevels> <apirequest:request> <requestparams:Authentication> <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier> <requestparams:Industry>VVS</requestparams:Industry> <requestparams:Key>DEVMANU616</requestparams:Key> </requestparams:Authentication> </apirequest:request> </apirequest:GetProductInfoLevels> </soapenv:Body> </soapenv:Envelope>
<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <GetProductInfoLevelsResponse xmlns='Prodibas.API.V1'> <GetProductInfoLevelsResult xmlns:a='Prodibas.API.V1.Parameters' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'> <a:Data xmlns:b='http://schemas.microsoft.com/2003/10/Serialization/Arrays'> <b:string/> <b:string>Unknown</b:string> <b:string>ActiveNumber</b:string> ... </a:Data> <a:User i:nil='true' xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/> </GetProductInfoLevelsResult> </GetProductInfoLevelsResponse> </s:Body> </s:Envelope>
Parameters
ApiRequest request
Returns
ApiResponse
<List<KeyValuePair<char, string>>>
Throws
InternalErrorFault
if not authorizedValues:
NOTE! More values exists in database but are not available for usage via version 1 of the API. Please not that you cannot update products with these values through the version 1 of the API and that any products which have any of these values set will be returned via the API as None (space) Inga krav. These values are:
<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:apirequest='Prodibas.API.V1' xmlns:requestparams='Prodibas.API.V1.Parameters'> <soapenv:Header/> <soapenv:Body> <apirequest:GetStorageRequirements> <apirequest:request> <requestparams:Authentication> <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier> <requestparams:Industry>VVS</requestparams:Industry> <requestparams:Key>DEVMANU616</requestparams:Key> </requestparams:Authentication> </apirequest:request> </apirequest:GetStorageRequirements> </soapenv:Body> </soapenv:Envelope>
<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <GetStorageRequirementsResponse xmlns='Prodibas.API.V1'> <GetStorageRequirementsResult xmlns:a='Prodibas.API.V1.Parameters' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'> <a:Data xmlns:b='http://schemas.datacontract.org/2004/07/System.Collections.Generic'> <b:KeyValuePairOfcharstring> <b:key>32</b:key> <b:value>None</b:value> </b:KeyValuePairOfcharstring> <b:KeyValuePairOfcharstring> <b:key>75</b:key> <b:value>UnheatedWarehouse</b:value> </b:KeyValuePairOfcharstring> <b:KeyValuePairOfcharstring> <b:key>83</b:key> <b:value>Sprangkasun</b:value> </b:KeyValuePairOfcharstring> </a:Data> <a:User i:nil='true' xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/> </GetStorageRequirementsResult> </GetStorageRequirementsResponse> </s:Body> </s:Envelope>
Lists all available SVHC substances.
Used in ApiProduct in EnvironmentalData.SVHCSubstances. The available SVHC substance names listed here can be used to add/update a SVHC substance. Custom substances can be added with StructuredInputOptions.IgnoreWarnings set to true.
Parameters
ApiRequest request
Returns
ApiResponse
<List<
ApiAvailableSVHCSubstance>>
Throws
InternalErrorFault
if not authorized<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:apirequest='Prodibas.API.V1' xmlns:requestparams='Prodibas.API.V1.Parameters'> <soapenv:Header /> <soapenv:Body> <apirequest:GetSVHCSubstances> <apirequest:request> <requestparams:Authentication> <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier> <requestparams:Industry>VVS</requestparams:Industry> <requestparams:Key>DEVMANU616</requestparams:Key> </requestparams:Authentication> </apirequest:request> </apirequest:GetSVHCSubstances> </soapenv:Body> </soapenv:Envelope>
<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <GetSVHCSubstancesResponse xmlns='Prodibas.API.V1'> <GetSVHCSubstancesResult xmlns:a='Prodibas.API.V1.Parameters' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'> <a:Data xmlns:b='Prodibas.API.V1.Model'> <b:ApiAvailableSVHCSubstance> <b:CAS>10043-35-3</b:CAS> <b:EG>233-139-2</b:EG> <b:SubstanceName>Boric acid</b:SubstanceName> </b:ApiAvailableSVHCSubstance> ... </a:Data> <a:User i:nil='true' xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/> </GetSVHCSubstancesResult> </GetSVHCSubstancesResponse> </s:Body> </s:Envelope>
Parameters
ApiRequest request
Returns
ApiResponse
<List<string>>
Throws
InternalErrorFault
if not authorized<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:apirequest='Prodibas.API.V1' xmlns:requestparams='Prodibas.API.V1.Parameters'> <soapenv:Header/> <soapenv:Body> <apirequest:GetUnits> <apirequest:request> <requestparams:Authentication> <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier> <requestparams:Industry>VVS</requestparams:Industry> <requestparams:Key>DEVMANU616</requestparams:Key> </requestparams:Authentication> </apirequest:request> </apirequest:GetUnits> </soapenv:Body> </soapenv:Envelope>
<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <GetUnitsResponse xmlns='Prodibas.API.V1'> <GetUnitsResult xmlns:a='Prodibas.API.V1.Parameters' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'> <a:Data xmlns:b='http://schemas.microsoft.com/2003/10/Serialization/Arrays'> <b:string/> <b:string>ST</b:string> <b:string>M</b:string> ... </a:Data> <a:User i:nil='true' xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/> </GetUnitsResult> </GetUnitsResponse> </s:Body> </s:Envelope>
Lists all URI-types and their associated file extensions.
Parameters
ApiRequest request
Returns
ApiResponse
<List<ApiProductUritype>>
Throws
InternalErrorFault
if not authorized<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:apirequest='Prodibas.API.V1' xmlns:requestparams='Prodibas.API.V1.Parameters'> <soapenv:Header /> <soapenv:Body> <apirequest:GetUriTypes> <apirequest:request> <requestparams:Authentication> <requestparams:CompanyIdentifier>MANU616</requestparams:CompanyIdentifier> <requestparams:Industry>VVS</requestparams:Industry> <requestparams:Key>DEVMANU616</requestparams:Key> </requestparams:Authentication> </apirequest:request> </apirequest:GetUriTypes> </soapenv:Body> </soapenv:Envelope>
<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <GetUriTypesResponse xmlns='Prodibas.API.V1'> <GetUriTypesResult xmlns:a='Prodibas.API.V1.Parameters' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'> <a:Data xmlns:b='Prodibas.API.V1.Model'> <b:ApiProductUritype> <b:FileExtensions xmlns:c='http://schemas.microsoft.com/2003/10/Serialization/Arrays'> <c:string>gif</c:string> <c:string>jpeg</c:string> <c:string>jpg</c:string> <c:string>png</c:string> <c:string>tif</c:string> <c:string>tiff</c:string> </b:FileExtensions> <b:Id>1</b:Id> <b:Identifier>BILD</b:Identifier> <b:Instruction>Bild får vara i...</b:Instruction> <b:Name>Bild</b:Name> <b:SortOrder>10</b:SortOrder> <b:ValidUntil>false</b:ValidUntil> </b:ApiProductUritype> ... </a:Data> <a:User i:nil='true' xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/> </GetUriTypesResult> </GetUriTypesResponse> </s:Body> </s:Envelope>
Parameters
ApiRequest request
Returns
ApiResponse
<List<ApiDualUseCode>>
Throws
InternalErrorFault
if not authorized<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:apirequest='Prodibas.API.V1' xmlns:requestparams='Prodibas.API.V1.Parameters'> <soapenv:Header/> <soapenv:Body> <apirequest:GetDualUseCodes> <apirequest:request> <requestparams:Authentication> <requestparams:CompanyCode>MANU616</requestparams:CompanyCode> <requestparams:Industry>VVS</requestparams:Industry> <requestparams:Key>DEVMANU616</requestparams:Key> </requestparams:Authentication> </apirequest:request> </apirequest:GetDualUseCodes> </soapenv:Body> </soapenv:Envelope>
<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <GetDualUseCodesResponse xmlns='Prodibas.API.V1'> <GetDualUseCodesResult xmlns:a='Prodibas.API.V1.Parameters' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'> <a:Data xmlns:b='Prodibas.API.V1.Model'> <b:ApiDualUseCode> <b:Code>0A001a</b:Code> <b:Description>Svavelkis och andra naturliga järnsulfider, orostade // //</b:Description> </b:ApiDualUseCode> <b:ApiDualUseCode> <b:Code>0A001c</b:Code> <b:Description>Naturlig grafit // I pulver eller flingor //</b:Description> </b:ApiDualUseCode> ... </a:Data> <a:User i:nil='true' xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'/> </GetDualUseCodesResult> </GetDualUseCodesResponse> </s:Body> </s:Envelope>
There are some objects that are used in requests/responses across the API services and methods. For example:
The ApiAuthentication object contains three parts:
public class ApiAuthentication { public string CompanyIdentifier { get; set; } // string.Format("MANU{0}", company.Id) public Industry Industry { get; set; } // see enum below public string Key { get; set; } // any of your active API keys. } public enum Industry { VVS = 1, SEG = 2 }
In example, the key is for the dev environment. Not applicable elsewhere.
<requestparams:Authentication> <requestparams:CompanyIdentifier>MANU999</requestparams:CompanyIdentifier> <requestparams:Industry>VVS</requestparams:Industry> <requestparams:Key>DEVMANU999</requestparams:Key> </requestparams:Authentication>
Every request has to provide authentication information as an input parameter.
Anonymous requests are blocked.
public class ApiRequest { public ApiAuthentication Authentication { get; set; } }
<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:apirequest='Prodibas.API.V1' xmlns:outputopts='Prodibas.API.V1.Parameters.OutputOptions' xmlns:requestparams='Prodibas.API.V1.Parameters'> <soapenv:Header/> ... <apirequest:GetByIdentifier> (example method) ... <apirequest:productIdentifier> (example params for this method) ... <apirequest:structuredOutputOptions> (example optional params for this method) ... <apirequest:requestOptions> (required authentication for all requests ) <requestparams:Authentication> <requestparams:CompanyIdentifier>MANU999</requestparams:CompanyIdentifier> <requestparams:Industry>VVS</requestparams:Industry> <requestparams:Key>DEVMANU999</requestparams:Key> </requestparams:Authentication> </apirequest:requestOptions>
The ApiQueuedRequest is a request that will be queued and processed in batch.
It will return a QueuedId of the queued request which then can be used to poll result.
public class ApiQueuedRequest : ApiRequest { public string PingBackUrl { get; set; } }
If PingBackUrl is present, the service will make one HTTP GET request to notify the client-side that the queued work has been processed. Firewall port openings might be required on the client-side. Unreliable if there are network issues.
<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:apirequest='Prodibas.API.V1' xmlns:requestparams='Prodibas.API.V1.Parameters' xmlns:outputopts='Prodibas.API.V1.Parameters.OutputOptions'> <soapenv:Header/> <soapenv:Body> ... <apirequest:GetManyByIdentifiersQueued> (example method) ... <apirequest:productIdentifier> (example params for this method) ... <apirequest:structuredOutputOptions> (example optional params for this method) ... <apirequest:queuedRequestOptions> (required authentication for all requests ) <requestparams:Authentication> <requestparams:CompanyIdentifier>MANU999</requestparams:CompanyIdentifier> <requestparams:Industry>VVS</requestparams:Industry> <requestparams:Key>DEVMANU999</requestparams:Key> </requestparams:Authentication> <requestparams:PingBackUrl></requestparams:PingBackUrl> (optional PingBackUrl) </apirequest:queuedRequestOptions>
The ApiUpdateRequest object is one of the parameters for UpdateSingle
If an update request attempts to update documents (the term documents refers to both images and documents that are linked to a product) the documents are provided in a list of ApiUploadDocument (see below).
The product uri and document is linked together by using the same string value for ApiUploadDocument.FileName
and ApiProductUri.Url
. Several products and/or product uris can link to the same document. In this case it is only necessary to provide one document in the request.
FileName
must be unique within your company's "sandbox". Prodibas will rename the files according to the internal rules.
Note: The fields Type
, TypeIsSpecified
, Uri
, UriIsSpecified
and UrisIsSpecified
must be set for any changes of a document to have effect. If the document referred to in field Uri
is not an external link, a ApiUploadDocument
must also be provided.
public class ApiUpdateRequest : ApiRequest { public List<ApiUploadDocument> Documents { get; set; } } public class ApiUploadDocument { public string FileName { get; set; } public byte[] Bytes { get; set; } }
See also:
<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Header></s:Header> <s:Body> <UpdateSingle xmlns='Prodibas.API.V1'> <product xmlns:a='Prodibas.API.V1.Model' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'> ... product properties... <a:Uris> ... uris... <a:ApiProductUri> ... uri properties... <a:Type>BILD</a:Type> <a:TypeIsSpecified>true</a:TypeIsSpecified> ... uri properties... <a:Uri>filename1.jpg</a:Uri> <a:UriIsSpecified>true</a:UriIsSpecified> </a:ApiProductUri> ... uris... <a:ApiProductUri> ... uri properties... <a:Type>MAN</a:Type> <a:TypeIsSpecified>true</a:TypeIsSpecified> ... uri properties... <a:Uri>filename2.pdf</a:Uri> <a:UriIsSpecified>true</a:UriIsSpecified> </a:ApiProductUri> ... uris... <a:ApiProductUri> ... uri properties... <a:Type>PROD</a:Type> <a:TypeIsSpecified>true</a:TypeIsSpecified> ... uri properties... <a:Uri>filename2.pdf</a:Uri> <a:UriIsSpecified>true</a:UriIsSpecified> </a:ApiProductUri> ... uris... </a:Uris> <a:UrisIsSpecified>true</a:UrisIsSpecified> ... product properties... </product> <structuredInputOptions xmlns:a='Prodibas.API.V1.Parameters.OutputOptions' i:nil='true' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'></structuredInputOptions> <requestOptions xmlns:a='Prodibas.API.V1.Parameters' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'> <a:Authentication> <a:CompanyIdentifier>MANU999</a:CompanyIdentifier> <a:Industry>VVS</a:Industry> <a:Key>DEVMANU999</a:Key> </a:Authentication> <a:Documents> <a:ApiUploadDocument> <a:Bytes>... a base64 encoded document</a:Bytes> <a:FileName>filename1.jpg</a:FileName> </a:ApiUploadDocument> <a:ApiUploadDocument> <a:Bytes>... another base64 encoded document</a:Bytes> <a:FileName>filename2.pdf</a:FileName> </a:ApiUploadDocument> </a:Documents> </requestOptions> </UpdateSingle> </s:Body> </s:Envelope> If no documents are provided, the documents section is set to null ... <a:Documents i:nil='true'> </a:Documents> ...
The ApiQueuedUpdateRequest object is one of the parameters for UpdateManyQueued. It's identical to ApiUpdateRequest but also includes the PingBackUrl.
public class ApiQueuedUpdateRequest : ApiUpdateRequest { public string PingBackUrl { get; set; } }
If PingBackUrl is present, the service will make one HTTP GET request to notify the client-side that the queued work has been processed. Firewall port openings might be required on the client-side. Unreliable if there are network issues.
Most API responses contains a Data and a User object. What type Data is depends on the request method. The User object contains information about the user who made the request.
[DataContract(Name = "ApiResponse_{0}")] public class ApiResponse<T> { public T Data { get; set; } public ApiUser User { get; set; } } public class ApiUser { public int Id { get; set; } public string Email { get; set; } public string Name { get; set; } }
For example, a response could have the following signature:
ApiResponse<ApiProduct>
<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <GetSingleByIdentifierResponse xmlns='Prodibas.API.V1'> (example method) <GetSingleByIdentifierResult xmlns:a='Prodibas.API.V1.Parameters' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'> <a:Data xmlns:b='Prodibas.API.V1.Model'> ... product properties... </a:Data> <a:User xmlns:b='http://schemas.datacontract.org/2004/07/WebService.V1.Parameters'> <b:Email i:nil='true'/> <b:Id>1</b:Id> <b:Name>Test Testsson</b:Name> </a:User> </GetSingleByIdentifierResult> </GetSingleByIdentifierResponse> </s:Body> </s:Envelope>
A queued/batched request returns a ApiQueuedResponse containing a QueueId
. The QueueId
is used to receive the result by using the
GetResult or
GetUpdateResult methods.
public class ApiQueuedResponse { public int QueueId { get; set; } }
<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <GetManyByIdentifiersQueuedResponse xmlns='Prodibas.API.V1'> (example method) <GetManyByIdentifiersQueuedResult xmlns:a='Prodibas.API.V1.Parameters' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'> <a:QueueId>67640</a:QueueId> </GetManyByIdentifiersQueuedResult> </GetManyByIdentifiersQueuedResponse> </s:Body> </s:Envelope>
A PingBackUrl
can optionally be provided in all queued requests.
If PingBackUrl
is present, the service will make one HTTP GET request to notify the client-side that the queued work has been processed. Firewall port openings might be required on the client-side. Unreliable if there are network issues.
You can insert {QueueId}
into the pingback url and it will be replaced with the QueueId of the request.
If this is sent to the service:
http://myserver.mydomain.com?MyownId=ABC123&QueueId={QueueId}
It could result in a pingback call like this:
http://myserver.mydomain.com?MyownId=ABC123&QueueId=12345
Validation errors can be returned in the response as a result of a failed product(s) update operation.
Prodibas uses comprehensive validation of incoming data. Some of the rules relates to other products in the system. There are also rules
regarding roles and the right to change some data. If the API refuses to write data because of validation rules, it responds with one or several ApiModelValidationError
s.
Client side should always verify the result of writing data to Prodibas. Client side should also provide a way to present a report to the end-user.
public class ApiModelValidationError { public string Field { get; set; } public string Message { get; set; } }
<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <UpdateSingleResponse xmlns='Prodibas.API.V1'> (example method) <UpdateSingleResult xmlns:a='Prodibas.API.V1.Model' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'> <a:ApiModelValidationError> <a:Field>NameEn</a:Field> <a:Message> Artikel (4842188-123) valideringsfel. Fält: Benämning Engelsk. Ogiltigt antal tecken. Måste vara 30 eller färre. Angivet värde=AS123 NameEn UpdateSingle 17:44 </a:Message> </a:ApiModelValidationError> <a:ApiModelValidationError> <a:Field>Color</a:Field> <a:Message> Produkt (4842188-123) valideringsfel vid förändring. Fält: Färg. Värdet kan endast ändras av en administratör. </a:Message> </a:ApiModelValidationError> </UpdateSingleResult> </UpdateSingleResponse> </s:Body> </s:Envelope>
A list of available SVHC substances can be retrieved with the GetSVHCSubstances method.
public class ApiAvailableSVHCSubstance { public string SubstanceName { get; set; } public string CAS { get; set; } public string EG { get; set; } public int BvbExternalSubstanceId { get; set; } public int BvbExternalSubstanceNameId { get; set; } }
<b:ApiAvailableSVHCSubstance> <b:BvbExternalSubstanceId>9</b:BvbExternalSubstanceId> <b:BvbExternalSubstanceNameId>3666</b:BvbExternalSubstanceNameId> <b:CAS>10043-35-3</b:CAS> <b:EG>233-139-2</b:EG> <b:SubstanceName>Boric acid</b:SubstanceName> </b:ApiAvailableSVHCSubstance>
A list of identifiers can be retrieved with the GetCountries method.
public class ApiCountry { public string Identifier { get; set; } public string Name { get; set; } }
Retrieve all versions with the GetEtimVersions method. NOTE! the method is not yet implemented!
public class ApiEtimVersion { public string Name { get; set; } public int MajorVersion { get; set; } public bool IsPreferred { get; set; } }
A list of identifiers can be retrieved with the GetPackageTypes method.
public class ApiPackageType { public string Id { get; set; } public string Name { get; set; } }
<b:ApiPackageType> <b:Id>300</b:Id> <b:Name>oförpackat/lösgods</b:Name> </b:ApiPackageType>
A list of identifiers can be retrieved with the GetPackagingFunctions method.
public class ApiPackagingFunction { public string Code { get; set; } public string Description { get; set; } public long Id { get; set; } public string Text { get; set; } }
<b:ApiPackagingFunction> <b:Code>ANTI_TAMPERING</b:Code> <b:Description>En metod som används...</b:Description> <b:Id>1</b:Id> <b:Text>Förseglad</b:Text> </b:ApiPackagingFunction>
A list of identifiers can be retrieved with the GetPalletTypes method.
public class ApiPalletType { public string Code { get; set; } public string Description { get; set; } public long Id { get; set; } public string Name { get; set; } }
<b:ApiPalletType> <b:Code>10</b:Code> <b:Description>Halvpall med måtten...</b:Description> <b:Id>1</b:Id> <b:Name>Pall 800x600 mm (ISO 0-pall)</b:Name> </b:ApiPalletType>
A list of identifiers can be retrieved with the GetProductGroup method.
public class ApiProductGroupDetailed { public int Id { get; set; } public int? ParentId { get; set; } public string Identifier { get; set; } public string FullIdentifier { get; set; } public string DisplayAs { get; set; } public string Name { get; set; } public string FullName { get; set; } public ApiRangeRead<int> Range { get; set; } public ApiRangeRead<string> RangeFormatted { get; set; } public bool IsOpenForCandidates { get; set; } public bool IsSelectable { get; set; } public int Level { get; set; } public bool AllowUse { get; set; } }
<b:ApiProductGroupDetailed> <b:AllowUse>true</b:AllowUse> <b:DisplayAs>00 Rör</b:DisplayAs> <b:FullIdentifier>010200</b:FullIdentifier> <b:FullName>Gjutjärnsrör > Tryckrörssystem > Rör</b:FullName> <b:Id>3</b:Id> <b:Identifier>00</b:Identifier> <b:IsOpenForCandidates>true</b:IsOpenForCandidates> <b:IsSelectable>true</b:IsSelectable> <b:Level>3</b:Level> <b:Name>Rör</b:Name> <b:ParentId>2</b:ParentId> <b:Range> <b:Max>1025170</b:Max> <b:Min>1024660</b:Min> </b:Range> <b:RangeFormatted> <b:Max>1025170</b:Max> <b:Min>1024660</b:Min> </b:RangeFormatted> </b:ApiProductGroupDetailed>
A list of identifiers can be retrieved with the GetUriTypes method.
public class ApiProductUritype { public int Id { get; set; } public string Identifier { get; set; } public string Name { get; set; } public string Instruction { get; set; } public int SortOrder { get; set; } public List<string> FileExtensions { get; set; } public bool ValidUntilEnabled { get; set; } }
<b:ApiProductUritype> <b:FileExtensions xmlns:c='http://schemas.microsoft.com/2003/10/Serialization/Arrays'> <c:string>gif</c:string> <c:string>jpeg</c:string> <c:string>jpg</c:string> <c:string>png</c:string> <c:string>tif</c:string> <c:string>tiff</c:string> </b:FileExtensions> <b:Id>1</b:Id> <b:Identifier>BILD</b:Identifier> <b:Instruction>Bild får vara i...</b:Instruction> <b:Name>Bild</b:Name> <b:SortOrder>10</b:SortOrder> <b:ValidUntilEnabled>false</b:ValidUntilEnabled> </b:ApiProductUritype>
A list of codes can be retrieved with the GetDualUseCodes method.
public class ApiDualUseCode { public string Code { get; set; } public string Description { get; set; } }