martes, 15 de abril de 2014

Llamada a método no implementado en dapihttp

dapihttp incluye un metodo para invocar un custom script del lado del servidor. Esto permite hacer llamadas a metodos de la doorsapi, no implementados en el modelo de objetos de dapihttp.

Ejemplo

doc.AclGrant 0, "read"

Este codigo no funciona con dapihttp ya que el metodo no se encuentra implementado.

Para invocarlo vamos a crear un Sub:

Sub DocAclGrant(ByRef pDoc, ByVal pAccId, ByVal pRight)
    Set dom = pDoc.Session.XML.NewDom
    dom.loadXML ""
    ' Establecemos el metodo a CustomScript
    dom.documentElement.setAttribute "method", "CustomScript"

    ' Los parametros se cargan como nodos
    ' El parametro 0 es el script que quiero ejecutar
    Set node = dom.createNode("element", "item", "")
    ' La funcion Arg del listener me permite obtener los argumentos recibidos
    ' La variable obj esta disponible para instanciar el objeto con el cual deseo trabajar
    ' mediante su GUID (ver argumento 1)
    node.Text = "Set obj = Session(CStr(Arg(1)))" & vbCrLf & _
        "obj.AclGrant CLng(Arg(2)), CStr(Arg(3))"
    dom.documentElement.AppendChild(node)

    ' Como argumento 1 envio el GUID del documento. Cada objeto instanciado
    ' con dapihttp tiene su imagen creada del lado del servidor. Esta imagen se
    ' almacena en una variable de sesion y se identifica mediante un GUID.
    Set node = dom.createNode("element", "item", "")
    node.Text = pDoc.ObjGuid ' Todos los objetos de dapihttp tienen un GUID
    dom.documentElement.AppendChild(node)

    ' Como argumento 2 envio la cuenta a la cual deseo dar permisos
    Set node = dom.createNode("element", "item", "")
    node.Text = pAccId
    dom.documentElement.AppendChild(node)

    ' Como argumento 3, el permiso que deseo aplicar
    Set node = dom.createNode("element", "item", "")
    node.Text = pRight
    dom.documentElement.AppendChild(node)

    ' Llamada al metodo
    pDoc.Session.HttpCallDom (dom)
End Sub

Para hacer la llamada:

DocAclGrant doc, 0, "read"

voila

No hay comentarios:

Publicar un comentario