Skip to main contentSkip to search
Powered by Zoomin Software. For more details please contactZoomin
Progress DocumentationProgress Documentation
Progress Documentation
  • Home
  • Home
  • EnglishČeštinaDeutsch (Germany)Español (Spain)Français (France)Italiano (Italy)Português (Brasil)日本語Русский (Russia)中文 (简体) (China)中文 (繁體, 台灣) (Taiwan)ar-AR
  • Login

OpenEdge Development: Web Services

Complex data in SOAP headers and SOAP faults

Save PDF
Save selected topicSave selected topic and subtopicsSave all topics
Share
Share to emailCopy topic URL
Print
Table of Contents
  • Introduction
    • Web Services in OpenEdge
      • Web services
      • Comparing OpenEdge support for SOAP WSA and REST Web services
      • Choosing between SOAP and REST in OpenEdge
    • Overview of REST Web services in OpenEdge
      • Standards supported by OpenEdge REST Web Services
        • HTTP
        • JSON
      • REST Web service architecture in OpenEdge
      • Tools for REST application development and management
        • Progress Developer Studio for OpenEdge
        • OpenEdge Management (OEM) and OpenEdge Explorer (OEE)
        • RESTMAN
      • Creating OpenEdge REST applications
        • Planning
        • Configuring an AppServer
        • Creating a REST project
        • Creating an AppServer REST service interface
        • Creating REST Web services
        • Adding static resources to your project
        • Generating an OpenEdge REST application
        • Testing the REST application on an Apache Tomcat Web server
        • Deploying the REST application
      • Clients for OpenEdge REST Web services
    • Overview of SOAP Web services in OpenEdge
      • Standards supported by OpenEdge SOAP Web services
        • WSDL files
        • SOAP
          • SOAP message formats
          • SOAP message document structure
        • XML Schema
      • SOAP Web service architecture in OpenEdge
      • Creating OpenEdge SOAP Web services
        • Defining requirements
          • Session models
          • SOAP message formats
          • WSA and server security options
        • Defining the Web service in ProxyGen
        • Deploying a SOAP Web service
          • Writing a client and testing a SOAP Web service
          • Documenting client programming requirements
        • Putting the SOAP Web service into production
          • Tuning the Web service and its WSA instance
      • Creating ABL clients to consume SOAP Web services
        • Obtain the Web service's WSDL and documentation
        • Run the WSDL Analyzer
        • Build your client
          • Comparing access to AppServers and Web services
        • Test your client
      • Sample of consuming a SOAP Web service
  • Creating OpenEdge REST Web Services
    • REST Applications
      • REST annotations in ABL code
        • Main REST annotations
        • Internal REST annotations
        • Annotation examples
          • External Procedure
          • Internal procedure
      • REST services in OpenEdge
        • Planning the URI structure of a REST service
          • Create services
          • Export WAR
          • Deploy application
        • Adding REST resources to a service
          • The service-relative URI
          • Path parameters
          • Query parameters
          • HTTP verbs
        • Procedure mapping examples
      • Parameter mapping
        • Input parameter mapping
        • Supported input parameter mappings
        • Output parameter mapping
        • Supported output parameter mappings
      • JSON input and output message formats
        • JSON input (request) messages
        • JSON output (response) messages
      • The structure of REST application WAR files
      • Manually Adding Additional Services to a REST Application
      • Errors and exceptions
    • REST Application Security
      • Security considerations
      • Java Servlet Container managed security
      • REST application managed security
      • AppServer application managed security
      • Data-in-transit network security
      • REST Manager security
    • Data Object Services
      • Overview of Data Object Services
      • Coding Business Entities to implement Data Objects
        • Singleton classes and procedures as Data Object resources
        • Coding ABL routines to implement a Data Object resource
        • Creating an ABL class with the New Business Entity wizard
        • Using existing ABL code with the Define Service Interface wizard
        • Coding ABL for Data Object operations
        • Sample Business Entity with before-image support
        • Sample Business Entity without before-image support
        • Updates to allow access by Kendo UI DataSources and Rollbase external objects
          • Understanding the JSON Filter Pattern (JFP)
          • Adding the Count operation method
          • Sample Read operation updated to handle JFP input and server paging
      • URIs for accessing Data Object Web applications, Services, and resources
        • Data Object URIs for client app access
        • Data Object URIs for testing resources from REST clients
        • Using a REST client to execute a Data Object operation
  • Creating OpenEdge SOAP Web Services
    • Exposing AppServer Applications as OpenEdge SOAP Web Services
      • Deciding how to expose your application
        • Web service objects and the WSDL file
          • Object representation
          • Object binding
          • Deployment information
        • Session Models and object IDs
          • Session models
          • How object IDs support session models
          • How session models affect Web service objects
        • SOAP message formats
          • SOAP formats supported by OpenEdge Web services
      • Enabling the AppServer application
      • Define and deploy a Web service definition
        • Configure a Web Service Adapter instance
        • Install WSA on a DMZ server
      • Distributing your WSDL file
    • Building Clients for OpenEdge SOAP Web services
      • Creating client interfaces from WSDL
        • WSDL element overview for OpenEdge Web services
      • SOAP format impact on generated client interfaces
        • Method signatures
        • Method return values
      • Client programming for different session models
        • Programming clients for session-managed Web services
        • Programming clients for session-free Web services
      • Overview of calling methods on Web service objects
        • Client interface methods for session-managed AppObjects
        • Client interface methods for session-free AppObjects
        • Client interface methods for SubAppObjects and ProcObjects
          • ProcObject methods
          • SubAppObject methods
      • Retrieving and sending object IDs: handling SOAP headers
        • Defining object IDs in WSDL
        • Using object IDs in a SOAP message
      • Defining and passing Web service method parameters
        • Client data type mapping
        • Relational data types
        • Date and time data
        • Dedicated ABL data types
        • Array parameters
          • Fixed arrays
      • Mapping relational data
        • Defining TABLE (static temp-table) parameters
        • Defining TABLE-HANDLE (dynamic temp-table) parameters
        • Defining DATASET (static ProDataSet) parameters
        • Defining DATASET-HANDLE (dynamic ProDataSet) parameters
        • Additional considerations
          • Including before-image data
          • Name collisions
          • R-code header changes
      • Mapping ABL procedures to SOAP messages
        • ABL procedure prototype to WSDL operation
        • WSDL operation to client method prototype
        • Client method call to SOAP request/response message pair
      • Handling Web service errors and SOAP faults
        • Client programming for SOAP faults
    • Sample Code with SOAP Messages for OpenEdge Web Services
      • Sample Web service specifications
      • Consume a session-managed Web service
      • Consume a session-free Web service
      • Run an ABL non-persistent procedure
      • Create and use a ProcObject
        • ProcObject session context
        • ProcObject IDs
        • ProcObject class factory methods
      • Run an internal procedure or user-defined function
      • Release an object
      • Pass static and dynamic temp-table parameters
        • Invoke a method with a TABLE parameter
        • Invoke a method with a TABLE-HANDLE parameter
      • Process a SOAP fault message
      • Pass static and dynamic ProDataSet parameters
        • Invoke a method with a DATASET parameter
        • Invoke a method with a DATASET-HANDLE parameter
    • Test and debug OpenEdge SOAP Web Services
      • Test the ABL application as a Web service
        • Unit testing from ABL
        • Testing from a Web services client
      • Error information levels
        • WSA and Web service logging level properties
        • Logging information
        • Hints for setting the WSA loggingLevel property
        • Hints for setting the Web service serviceLoggingLevel property
        • Set logging level properties
      • Identifying relevant log files
      • SOAP faults
        • Set the serviceFaultLevel property
        • Typical SOAP fault response message
          • WSA's <errorMessage> element
          • WSA's <requestID> element
        • Handle SOAP faults programmatically
      • Use a SOAP message viewer
        • Configure and run WSAViewer
      • Identify errors
        • How the WSA logs Web service information
        • Errors occurring in WSA administration requests
        • Errors occurring in Web service application requests
          • Client-side errors
          • Server-side errors
      • Sample error scenarios
        • Scenario 1: Web service deployed but not enabled
        • Scenario 2: ABL updated, but Web service not redeployed
        • Scenario 3: Web service deployed but the server is not running
  • Creating ABL Clients to Consume OpenEdge SOAP Web Services
    • Create an ABL Client from WSDL
      • Basics of an ABL client to consume Web services
      • Use the WSDL Analyzer
        • Running the WSDL Analyzer
        • Understanding the WSDL Analyzer output
          • Index and Service pages
          • Operation index page
          • Port type page
          • Data types page
        • Analyzing wrapped document literal
          • Wrapped form
          • Unwrapped form
          • WSDL Analyzer documentation options
          • Programming options
        • Analyzing complex data
          • Web service operation parameter documentation
          • SOAP header entry and SOAP fault detail documentation
      • Map XML Schema data types to ABL data types
        • Simple data types
          • Suggested mappings
          • Interacting with XML Schema data formats
        • Arrays
        • Complex data types
    • Connecting to OpenEdge SOAP Web Services from ABL
      • What is a Web service connection?
      • Binding to a Web service
        • Creating a server object handle
        • Binding to a server object handle
          • Connection parameters
          • Using HTTPS
          • Invoking the binding
          • Binding results
      • Managing Web service bindings
        • Accessing a port type for a Web service
        • Accessing multiple port types
        • Accessing multiple port types simultaneously
    • Invoking OpenEdge SOAP Web Service Operations from ABL
      • Preparing to invoke operations
        • Creating a Web service procedure object
      • Invoking operations
        • Using the RUN statement
        • Using a user-defined function
      • Managing operation parameters
      • Managing complex data
        • Types of complex data
          • Complex data type parameters
          • Complex data in SOAP headers and SOAP faults
        • Complex data example
        • Coding options for wrapped document literal
          • Using the wrapped form
          • Using the unwrapped form
      • Managing asynchronous requests
        • Supported asynchronous Web service requests
        • Order of completion
        • Asynchronous request object handle
        • Results handling
    • Handling SOAP Message Headers in ABL
      • SOAP message headers: an overview
        • SOAP header structure
          • Accessing the SOAP header
          • Requirements for header handlers
        • SOAP header object model
        • Accessing SOAP header entries
          • Accessing a SOAP response header
          • Creating a SOAP request header
        • Specifying SOAP header callback procedures at run time
        • Using the SET-CALLBACK-PROCEDURE( ) method
      • Defining header handlers
        • Defining a response header handler
        • Defining a request header handler
      • Invoking a header handler
      • Creating and managing SOAP message headers
        • Reusing an unchanged SOAP response header
          • Response header handler for returning a header for reuse
          • Request header handler for reusing a header
        • Modifying a reused SOAP response header
          • Request header handler for reusing and modifying a header
        • Using a client-created SOAP request header
          • Procedure to create a SOAP request header
          • Request header handler for passing a globally-created header object
      • Managing memory for SOAP headers
        • SOAP header object model and DOM relationships
        • Memory for the SOAP header object model and DOM
      • Attributes and methods for handling SOAP headers
        • SOAP header object attributes and methods
        • SOAP header-entryref object attributes and methods
    • Handling Errors in ABL Requests to OpenEdge SOAP Web Services
      • Handling SOAP faults
      • Detecting a SOAP fault
        • SOAP faults with traditional error handling
        • SOAP faults with structured error handling
      • Managing a SOAP fault
      • Examples of ABL accessing a SOAP fault
        • Traditional error handling example
        • Structured error handling example
        • Asynchronous call error handling example
      • Debugging ABL applications that call Web services
        • SOAP Viewers
        • Using WSAViewer
          • Using WSAViewer with an ABL client
  • Develop a .NET Client to Consume OpenEdge SOAP Web Services
    • What is Microsoft .NET?
    • Using .NET as your Web services client
    • VB.NET sample Web service specifications
    • Creating the VB.NET client interface
      • Adding a Web reference
      • Reference.vb: Web service client interface
      • Reference.vb: Open Client objects
      • .NET data type mapping
      • Accessing parameter data
      • TABLE (static temp-table) parameters
      • TABLE-HANDLE (dynamic temp-table) parameters
      • Sample interface object prototypes in Reference.vb
      • Sample common interface method prototypes in Reference.vb
      • Sample ABL and VB.NET interface method prototypes
        • Non-persistent procedure
        • Persistent procedure
        • User-defined function
        • Internal procedure passing a TABLE parameter
        • TABLE definition
        • External procedure passing a TABLE-HANDLE parameter
    • Developing the VB.NET client application
      • Creating the Web service
      • Running a non-persistent (external) procedure
      • Creating server-side context for a ProcObject (running a persistent procedure)
      • Running an internal procedure or user-defined function
      • Creating a SubAppObject
      • Releasing an object
      • Running a procedure with a TABLE parameter
      • Processing the data from a TABLE parameter
      • Running a procedure with a TABLE-HANDLE parameter
      • Preparing schema and data for input TABLE-HANDLE parameter
      • Processing schema and data for output TABLE-HANDLE parameter
      • Extra processing for RPC/Encoded TABLE-HANDLE parameters
      • Handling errors on the client
    • Creating .NET DataSets from ProDataSet parameters
    • Learning more about writing .NET clients
  • Develop a Java Client to Consume OpenEdge SOAP Web Services
    • Using Java client toolkits
    • Java sample Web service specifications
    • Creating Java Axis client interface objects
      • Generating client interface objects
      • Proxy directory structure
      • Proxy classes
      • Java data type mapping
      • Output parameters
      • ABL unknown values
      • TABLE (static temp-table) parameters
      • TABLE-HANDLE (dynamic temp-table) parameters
      • Sample Java prototypes for common object methods
      • Sample ABL and Java interface method prototypes
        • Non-persistent procedure
        • Persistent procedure
        • User-defined function
        • Internal procedure using a temp-table
        • Temp-table definition
        • External procedure passing a TABLE-HANDLE
    • Developing the Axis client application
      • Setting up the Web service objects
      • Using the sample PscObjectIDHandler and HandlerControlBlock classes
      • Setting up the PscObjectIDHandler objects
      • Connecting to a Web service
      • Running a non-persistent (external) procedure
      • Creating server-side context for a ProcObject (running a persistent procedure)
      • Running an internal procedure or user-defined function
      • Running an internal procedure with a TABLE parameter
      • Processing the data from a TABLE parameter
      • Running a procedure with a TABLE-HANDLE parameter
      • Using sample helper classes to manage TABLE-HANDLE parameters
      • Preparing schema and data for input TABLE-HANDLE parameters
      • Processing schema and data for output TABLE-HANDLE parameters
      • Releasing an object
      • Handling errors on the client
      • Compiling and running the client application
    • ProDataSet parameters in Java Web service clients
      • Proxy classes
      • DATASET (static ProDataSet) parameters
        • Before-image data
      • DATASET-HANDLE (dynamic ProDataSet) parameters
        • Before-image data
  • ABL Elements to Consume SOAP Web Services
    • Handles to consume a web service
    • Statements to consume SOAP web services
    • Attributes, methods, and events to consume a web service
  • Data Type Conversion Rules for ABL Calls to SOAP Web Services
    • Data type casting
    • CHARACTER or LONGCHAR
    • DATE
    • DATETIME
    • DATETIME-TZ
    • DECIMAL
    • INT64
    • INTEGER
    • LOGICAL
    • MEMPTR or RAW
  • WSDL Details
    • ABL procedure prototype to WSDL operation
    • Array mapping in WSDL documents
      • Doc/Lit
      • RPC/Literal
      • RPC/Encoded
    • Define TABLE (static temp-table) parameters
    • Define TABLE-HANDLE (dynamic temp-table) parameters
    • Define DATASET (static ProDataSet) parameters
      • Include before-image data
      • Use NAMESPACE-URI attributes
    • Define DATASET-HANDLE (dynamic ProDataSet) parameters
  • The WSDL Analyzer
    • bprowsdldoc
Table of Contents

Complex data in SOAP headers and SOAP faults

Save PDF
Save selected topicSave selected topic and subtopicsSave all topics
Share
Share to emailCopy topic URL
Print
  • Last Updated: March 7, 2023
  • 1 minute read
    • OpenEdge
    • Version 12.2
    • Documentation

You can also use techniques available for managing complex data parameters to access and manage the data for SOAP header entries and SOAP fault detail elements. You can get and set this data either as serialized character strings or as DOM trees. For more information, see Handling SOAP Message Headers in ABL, Handling Errors in ABL Requests to OpenEdge SOAP Web Services.

TitleResults for “How to create a CRG?”Also Available inAlert