The ]po[ SOAP::Lite package implements a light-weight SOAP server, allowing external systems to modify ]po[ objects in a standard and interoperable way.
The package implements for each business object the following operations:
The core of the "intranet-soap-lite-server" package is written in Perl using the SOAP::Lite package, using explicitly typed return variables, allowing for interoperability with Java Axis and .Net.
Two main characteristics have shaped the definition of the Web Service:
For these reasons we have decided to use a generic Web Service protocol that only consists of four methods:
In order to deal with the generic parameter passing, we define a SOAP complex data type "varList" consisting of a list of key-type-value tuples:
]project-open[ will check the varList at runtime for correctness and completeness:
For example, in order to create a new project, we will pass ]po[ the following varList to the call "objectCreate(authToken, 'im_project', varList):
]po[ will return a SOAP fault if one of these variables is not in the varList, or the type of the variable doesn't comply with the expected type.
The following table includes some examples for object types:
|Object Type||Required Parameters
|Project (im_project)||project_name, project_nr, project_path, parent_id, company_id, project_type_id, project_status_id||description, end_date, expected_quality_id, milestone_p, note, on_track_status_id, percent_completed, project_budget, project_budget_currency, project_budget_hours, project_lead_id, source_language_id, start_date, subject_area_id, supervisor_id, team_size, template_p
|Company (im_company)||company_name, company_path, main_office_id, company_type_id, company_status_id
||accounting_contact_id, annual_revenue_id, billable_p, business_sector_id, company_group_id, contract_value, default_bill_template_id, default_delnote_template_id, default_invoice_template_id, default_payment_days, default_payment_method_id, default_po_template_id, default_quote_template_id, default_vat, invoice_template_id, manager_id, note, payment_days, payment_method_id, primary_contact_id, referral_source, site_concept, start_date, vat_number
|office_name, office_path, office_type_id, office_status_id, company_id
||address_city, address_country_code, address_line1, address_line2, address_postal_code, address_state, contact_person_id, fax, landlord, note, phone
A WSDL description of the service will be available in the future.