Document provider

The document provider interface consists of this function:
Syntax:
    function extern xmlnode get.metadata()
Description:
    Provides the document provider meta data in datafields and optionally contexts.
Example implementation which assumes the bic_dom be included:
  
    domain ttxmlnode meta.node
  
    meta.node = dom.provider.metadata.init()
  
    dom.provider.metadata.add.field("filename", "Filename", "ttaud.path",  meta.node)
    dom.provider.metadata.add.field("docname", "Document name", "ttaud.path", meta.node)
    dom.provider.metadata.add.field("extension", "Extension", "ttst10", meta.node)
    
    dom.provider.metadata.add.context("new", "New file", meta.node)   dom.provider.metadata.add.context("update", "Updated file", meta.node)

    return (meta.node)
    Description: XML node with metadata

The <bic_dom> include contains these supporting functions, which can be used in the get.metadata implementation:

dom.provider.metadata.init()
Syntax:
     function extern long dom.provider.metadata.init()
Description:
     Initializes the DOM Document Provider meta data structure.
dom.provider.metadata.add.field()
Syntax:
     function extern long dom.provider.metadata.add.field (string i.id, string i.description, string i.domain, long io.metadata)
Description:
     Adds a provider data field to the meta data.
Arguments:
     i.id: Name of the provider data field.
     i.description: Description of the provider data field.
     i.domain: Domain of the provider data field.
     io.metadata: Node created by dom.provider.metadata.init().
dom.provider.metadata.add.context ()
Syntax:
     function extern long dom.provider.metadata.add.context (string i.id, string i.description, long io.metadata)
Description:
     Adds a provider context to the meta data.
Arguments:
     i.id: Name of the provider context.
     i.description: Description of the provider context.
     io.metadata: Node created by dom.provider.metadata.init().
dom.add.external.document()
Syntax: function extern long dom.add.external.document( const string i.doc.provider,
                                                        const string i.doc.provider.context,
                                                        const string i.file.name,  
                                                        const string i.language,   
                                                        boolean i.own.transaction,  
                                                        ref string o.error)
Description:
	Add a rendered document to Document Output Management (DOM). The given  language is used to select language dependent DOM document type parts.  A batch is created with one document
Precondition:
	The given document provider exists and a valid document provider rule exists.
Postcondition:
	The document given in i.file.name is added to DOM as rendered document  and is ready for distribution.
Arguments:
	i.doc.provider - The DOM Document Provider
	i.doc.provider.context - The Document Provider context used to differâ–º entiate in DOM   expressions.
	i.file.name - The rendered document to be added. This includes the path  on the LN server.
	i.language - Language to be used for selection of language dependent document type   parts.
	i.own.transaction - whether or not the changes have to be commited to  the database
	o.error - Error message in case of an error. Return value:  long 0 in case document has been added, <0 when not OK
	-2	Document Provider not found 
	-3	Document Provider Context not found 
	-4	Document Provider rule problem
	-5	Document type used in document provider rule not found
	-6	Batch cannot be created in DOM
	-7	Problem in getting keywords from document provider rule object
	-8	Document cannot be created in DOM
	-9	Document Variables cannot be created in DOM
	-10	Problem in initializing document distribution
	-11	Most likely given file cannot be attached as BLOB