Partilhar via


Referência do desenvolvedor BHOLD para o Microsoft Identity Manager 2016

O módulo BHOLD-core pode processar comandos de script. Isso pode ser feito usando diretamente o bscript.dll em um projeto .NET. Também interagindo com a interface b1scriptservice.asmx do serviço Web.

Antes de um script ser executado, todas as informações dentro do script devem ser coletadas para compor esse script. Esta informação pode ser recolhida a partir das seguintes fontes:

  • Entrada do usuário
  • Dados BHOLD
  • Aplicações
  • Outros

Os dados BHOLD podem ser recuperados usando a função GetInfo do objeto script. Há uma lista completa de comandos que podem apresentar todos os dados armazenados no banco de dados HOLD. No entanto, os dados apresentados estão sujeitos às permissões de visualização do utilizador com sessão iniciada. O resultado está na forma de um documento XML que pode ser analisado.

Outra fonte de informação pode ser uma das aplicações que são controladas pelo BHOLD. O snap-in do aplicativo tem uma função especial, o FunctionDispatch, que pode ser usado para apresentar informações específicas do aplicativo. Isso também é apresentado como um documento XML.

Finalmente, se não houver outra maneira, o script pode conter comandos diretamente para outros aplicativos ou sistemas. NoThenstallation de software extra no servidor BHOLD pode minar a segurança de todo o sistema.

Todas essas informações são colocadas em um documento XML e atribuídas ao objeto de script HOLD. O objeto combina este documento com uma função predefinida. A função predefinida é um documento XSL que traduz o documento de entrada de script em um documento de comando BHOLD.

de processamento de scripts BHOLD

Os comandos são executados na mesma ordem do documento. Se uma função falhar, todos os comandos executados serão revertidos.

Objeto Script

Esta seção descreve como usar o objeto de script.

Recuperar informações BHOLD

A função GetInfo é usada para recuperar informações dos dados disponíveis no sistema de autorização BHOLD. A função requer um nome de função e, eventualmente, um ou mais parâmetros. Se essa função for bem-sucedida, um objeto ou coleção BHOLD será retornado na forma de um documento XML.

Se a função não for bem-sucedida, a função GetInfo retornará uma cadeia de caracteres vazia ou um erro. A descrição e o número do erro podem ser usados para obter mais informações sobre a falha.

A função GetInfo 'FunctionDispatch' pode ser usada para recuperar informações de um aplicativo controlado pelo sistema BHOLD. Esta função requer três parâmetros: o ID do aplicativo, a função de despacho como é definida no ASI e um documento XML com informações de suporte para o ASI. Se a função for bem-sucedida, o resultado estará disponível em formato XML no objeto result.

O trecho abaixo é um exemplo simples de GetInfo em C#:

ScriptProcessor myScriptProcessor = new ScriptProcessor();
myScriptProcessor.Initializae("CORP\\b1user");
myScriptProcessor.GetInfo("OrgUnit", "1");

Da mesma forma, o objeto BScript também pode ser acessado através do serviço web b1scriptservice. Isso é feito adicionando uma referência da Web ao seu projeto usando http://<servidor>:5151/BHOLD/Core/b1scriptservice.asmx, onde <servidor> é o servidor com os binários BHOLD instalados. Para obter mais informações, consulte Adicionando uma referência de serviço Web a um projeto do Visual Studio.

O exemplo a seguir mostra como usar a função GetInfo de um serviço Web. Esse código recupera a Unidade Organizacional que tem um OrgID de 1 e, em seguida, exibe o nome dessa Unidade Organizacional na tela.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;

namespace bhold_console
{
    class Program
    {
        static void Main(string[] args)
        {
             var bholdService = new BHOLDCORE.B1ScriptService();
             bholdService.Url = "http://app1.corp.contoso.com:5151/BHOLD/Core/b1scriptservice.asmx";
             string orgname= "";

             if (args.Length == 3)
             {
                 //Use explicit credentials from command line
                 bholdService.UseDefaultCredentials = false;
                 bholdService.Credentials = new System.Net.NetworkCredential(args[0], args[1], args[2]);
                 bholdService.PreAuthenticate = true;
             }
             else
             {
                 bholdService.UseDefaultCredentials = true;
                 bholdService.PreAuthenticate = true;
             }

             //Load BHOLD information into an xml document and loop through document to find the bholdDescription value
             var myOrgUnit = new System.Xml.XmlDocument();
             myOrgUnit.LoadXml(bholdService.GetInfo("OrgUnit","1","","");

            XmlNodeList myList = myOrgUnit.SelectNodes(("//item");

            foreach (XmlNode myNode in myList)
            {
                for (int i = 0; i < myNode.ChildNodes.Count; i++)
                {
                    if (myNode.ChildNodes[i].InnerText.ToString() == "bholdDescription")
                    {
                        orgname = myNode.ChildNodes[i + 1].InnerText.ToString();
                    }
                }
            }

            System.Console.WriteLine("The Organizational Unit Name is: " + orgname);

        }
    }
}

O exemplo VBScript a seguir usa o serviço Web via SOAP e usando GetInfo. Para obter exemplos adicionais para SOAP 1.1, SOAP 1.2 e HTTP POST, consulte a seção BHOLD Managed Reference ou você pode navegar para o serviço Web diretamente de um navegador e visualizá-los lá.

Dim SOAPRequest
Dim SOAPParameters
Dim SOAPResponse
Dim xmlhttp

Set xmlhttp = CreateObject("Microsoft.XMLHTTP")

xmlhttp.open "POST", "http://app1.corp.contoso.com:5151/BHOLD/Core/b1scriptservice.asmx", False, "CORP\Administrator", "abc123*2k"

xmlhttp.setRequestHeader "Content-type", "text/xml; charset=utf-8"
xmlhttp.setRequestHeader "SOAPAction", "http://B1/B1ScriptService/GetInfo"

SOAPRequest = "<?xml version='1.0' encoding='utf-8'?> <soap:Envelope" & vbCRLF
SOAPRequest = SOAPRequest & " xmlns:xsi=""http://" & vbCRLF
SOAPRequest = SOAPRequest & " www.w3.org/2001/XMLSchema-instance""" & vbCRLF
SOAPRequest = SOAPRequest & " xmlns:xsd=""http://www.w3.org/2001/XMLSchema""" & vbCRLF
SOAPRequest = SOAPRequest & " xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">" & vbCRLF
SOAPRequest = SOAPRequest & " <soap:Body>" & vbCRLF
SOAPRequest = SOAPRequest & " <GetInfo xmlns=""http://B1/B1ScriptService"">" & vbCRLF
SOAPRequest = SOAPRequest & " <functionName>OrgUnit</functionName>" & vbCRLF
SOAPRequest = SOAPRequest & " <parameter1>1</parameter1>" & vbCRLF
SOAPRequest = SOAPRequest & " <parameter2></parameter2>" & vbCRLF
SOAPRequest = SOAPRequest & " <parameter3></parameter3>" & vbCRLF
SOAPRequest = SOAPRequest & " </GetInfo>" & vbCRLF
SOAPRequest = SOAPRequest & " </soap:Body>" & vbCRLF
SOAPRequest = SOAPRequest & " </soap:Envelope>"
MsgBox SOAPRequest

xmlhttp.send SOAPRequest 

SOAPResponse = xmlhttp.responseText

MsgBox SOAPResponse

Executar scripts

A função ExecuteScript do objeto BScript pode ser usada para executar scripts. Esta função requer dois parâmetros. O primeiro parâmetro é o documento XML que contém as informações personalizadas a serem usadas pelo script. O segundo parâmetro é o nome do script predefinido a ser usado. InNo diretório de scripts predefinidos BHOLD, aqui deve ser um documento XSL com o mesmo nome da função, mas com a extensão .xsl.

Se a função não tiver êxito, a função ExecuteScript retornará o valor False. A descrição e o número do erro podem ser usados para saber o que correu mal. A seguir está um exemplo de uso do método da Web ExecuteXML. Este método invoca ExecuteScript.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sample
{
    class Program
    {
        static void Main(string[] args)
        {
            var bholdService = new BHOLDCORE.B1ScriptService();
            bholdService.Url = "http://app1.corp.contoso.com:5151/BHOLD/Core/b1scriptservice.asmx";

            if (args.Length == 3)
            {
                //Use explicit credentials from command line
                bholdService.UseDefaultCredentials = false;
                bholdService.Credentials = new System.Net.NetworkCredential(args[0], args[1], args[2]);
                bholdService.PreAuthenticate = true;
            }
            else
            {
                bholdService.UseDefaultCredentials = true;
                bholdService.PreAuthenticate = true;
            }
            System.Console.WriteLine( "Add user #3 to role #44, result: {0}", bholdService.ExecuteXml(roleAddUser("44", "3")) );
            System.Console.WriteLine("Add user D1 to role 'MR-OU2 No Users', result: {0}", bholdService.ExecuteXml(roleAddUser("MR-OU2 No Users", "D1")));

        }

        private static System.Xml.XmlNode roleAddUser(string roleId, string userId)
        {
            var script = new System.Xml.XmlDocument();
            script.LoadXml(string.Format("<functions>"
                                        +"  <function name='roleadduser' roleid='{0}' userid='{1}' />"
                                        +"</functions>",
                                        roleId,
                                        userId)
                           );
            return script.DocumentElement;

BholdScriptResult

Essa função GetInfo está disponível depois que a função executescript é executada. A função retorna uma cadeia de caracteres formatada em XML que contém o relatório de execução completo. O nó Script contém a estrutura XML do script executado.

Para cada função que falha durante a execução do script, uma função de nó é adicionada com o nome dos nós. ExecuteXML e Error é adicionado ao final do documento, todos os IDs gerados são adicionados.

Observe que apenas as funções, que contêm um erro é adicionado. Um número de erro de '0' significa que a função não é executada.

<Bhold>
  <Script>
    <functions>
      <function name="OrgUnitadd" description="OrgUnit1" parentid="root" orgtypeid="root" return="@ID@"/>     
      <function name="roleaddOrgUnit" OrgUnitid="OrgUnit1" roleid="Role1_OrgUnit1" return="@ID@"/>      
    </functions>
  </Script>
  <Function>
    <Name>OrgUnitadd</Name>
    <ExecutedXML>
      <function name="OrgUnitadd" description="OrgUnit1" parentid="root" orgtypeid="root" return="@ID@"/>
    </ExecutedXML>
    <Error Number="5" Description="Violation of UNIQUE KEY constraint 'IX_OrgUnits'. Cannot insert duplicate key in object 'dbo.OrgUnits'.
The statement has been terminated."/>
  </Function>
  <Function>
    <Name>roleaddOrgUnit</Name>
    <ExecutedXML>
      <function name="roleaddOrgUnit" OrgUnitid="OrgUnit1" roleid="Role1_OrgUnit1" return="@ID@"/>
    </ExecutedXML>
    <Error Number="0" Description=""/>
  </Function>
  <IDS>
    <ID name="@ID@">35</ID>
  </IDS>
</Bhold>

Parâmetros de identificação

Os parâmetros de identificação recebem tratamento especial. Valores não numéricos são usados como valor de pesquisa para localizar as entidades correspondentes no armazenamento de dados HOLD. Quando o valor de pesquisa não é exclusivo, a primeira entidade que está em conformidade com o valor de pesquisa é retornada.

Para distinguir valores de pesquisa numérica de IDs, é possível usar um prefixo. Quando os primeiros seis caracteres do valor de pesquisa são iguais a 'no_id:', esses caracteres são removidos antes que o valor seja usado para pesquisar. Caracteres curinga SQL '%' podem ser usados.

Os seguintes campos são usados com o valor de pesquisa:

Tipo de ID Campo de pesquisa
OrgUnitID Descrição
ID da função Descrição
ID da tarefa Descrição
ID de utilizador DefaultAlias

Acesso e permissões de script

O código do lado do servidor no Ative Server Pages é usado para executar os scripts. Portanto, o acesso ao script significa o acesso a essas páginas. O sistema BHOLD mantém informações sobre os pontos de entrada das páginas personalizadas. Estas informações incluem a página inicial e a descrição da função (vários idiomas devem ser suportados).

Um usuário está autorizado a entrar nas páginas personalizadas e executar um script. Cada ponto de entrada é apresentado como uma tarefa. Cada usuário que ganhou essa tarefa através de uma função ou uma unidade é capaz de executar a função correspondente.

Uma nova função no menu apresenta todas as funções personalizadas que podem ser executadas pelo usuário. Porque um script pode executar ações no sistema BHOLD sob uma identidade diferente do usuário conectado. É possível dar permissão para executar uma ação específica sem ter supervisão sobre qualquer objeto. Por exemplo, isso pode ser útil para um funcionário que só tem permissão para inserir novos clientes na empresa. Esses scripts também podem ser usados para criar páginas de auto-registro.

Script de comando

O script de comando contém uma lista de funções que são executadas pelo sistema BHOLD. A lista é escrita em um documento XML que está em conformidade com as seguintes definições:

Script de comando <functions>functions</functions>
functions função {função}
função <function name="functionName" functionParameters [return] (/> | > parameterList </ function>)
nome_da_função Um nome de função válido, conforme descrito nas seções a seguir.
functionParameters { functionParameter }
functionParameter parameterName = "parameterValue"
nome_parâmetro Um nome de parâmetro válido.
valorparâmetro @variable@ | valor
valor Um valor de parâmetro válido.
Lista de parâmetros <parâmetros> {parameterItem} </parameters>
parâmetroItem <parameter name="parameterName"> parameterValue </parameter>
regressar return="@variable@"
variável Um nome de variável personalizada.

XML tem as seguintes traduções de caracteres especiais:

XML Personagem
&amp; &
&lt; <
&gt; >
&quot; "
&apos; '

Esses caracteres XML podem ser usados em identificadores, mas não são recomendados.

O código a seguir mostra um exemplo de um documento de comando válido com três funções:

<functions>

   <functionname="OrgUnitAdd" parentID="34" description="Acme Inc." orgtypeID="5" return="@UnitID@" />

   <function name="UserAdd" description="John Doe" alias="jdoe" languageID="1" OrgUnitID="@UnitID@" />

   <function name="TaskAddFile" taskID="93" path="/customers/purchase">
      <parameters>
         <parameter name="history"> True</parameter>
      </parameters>
   </function>

</functions>

A função OrgUnitAdd armazena a ID da unidade criada em uma variável chamada UnitID. Esta variável é usada como entrada para a função UserAdd. O valor de retorno desta função não é usado. As seções a seguir descrevem todas as funções disponíveis, os parâmetros necessários e seus valores de retorno.

Executar funções

Esta seção descreve como usar as funções de execução.

ABAAttributeRuleAdd

Crie uma nova regra de atributo em um tipo de atributo específico. As regras de atributo só podem ser vinculadas a um tipo de atributo.

A regra de atributo especificada pode ser vinculada a todos os tipos de atributos possíveis.

O RuleType não pode ser alterado com o comando "ABAattributeruletypeupdate". Requer que a descrição do atributo por unique.

Argumentos Tipo
Descrição Texto
Tipo de regra Especifique o tipo de regra de atributo. Dependendo do tipo de regra de atributo, outros argumentos devem ser incluídos. Os seguintes valores de tipo de regra são válidos:
  • 0: Expressão regular (adicionar argumento "valor").
  • 1: Valor (adicionar argumentos "operador" e "valor").
  • 2: Lista de valores.
  • 3: Range (adicionar argumentos "rangemin" e "rangemax").
  • 4: Idade (adicionar argumentos "operador" e "valor").
InvertResult ["0"|"1"|"N"|"Y"]
AttributeTypeID Texto
Argumentos opcionais Tipo
Operador Text
Nota: Este argumento é obrigatório se RuleType for 1 ou 4. Os valores possíveis são '=', '<', ou '>'. As tags XML precisam usar ">" para '>' e "<" para '<'.
RangeMin Número
Nota: Este argumento é obrigatório se RuleType for 3.
Máximo de Alcance Número
Nota: Este argumento é obrigatório se RuleType for 3.
Valor Text
Nota: Este argumento é obrigatório se RuleType for 0, 1 ou 4. O argumento deve ser um valor numérico ou alfanumérico.
Tipo de retorno AttributeRuleID Texto

aplicaçãoadicionar

Cria um novo aplicativo, retorna a ID do novo aplicativo.

Argumentos Tipo
descrição
máquina
módulo
parâmetro
protocolo
nome de utilizador
palavra-passe
svroleID (opcional) Se esse argumento não estiver presente, uma função de supervisor do usuário atual será usada.
Applicationaliasformula (opcional) A fórmula de alias é usada para criar um alias para um usuário quando ele é atribuído a uma permissão do aplicativo. O alias é criado se o usuário ainda não tiver um alias para este aplicativo. Se nenhum valor for fornecido, o alias padrão do usuário será usado como alias para o aplicativo. A fórmula está formatada como [<<objecttype>>.<<nameofobjecttypeattribute>>(startindexoffset,length offset)]. O deslocamento é opcional. Somente os atributos Usuário e Aplicativo podem ser usados. Poderia ser utilizado texto livre. Os caracteres reservados são colchete esquerdo ([) e colchete direito (]). Por exemplo: [Application.bholdDescription]\[User.bholdDefAlias(1,5)].
Tipo de Retorno ID do novo aplicativo.

AttributeSetValue

Define o valor de um tipo de atributo conectado ao tipo de objeto. Requer que as descrições do tipo de objeto e do tipo de atributo sejam exclusivas.

Argumentos Tipo
ObjectTypeID Texto
ObjectID Texto
AttributeTypeID Texto
Valor Texto
Tipo de retorno Tipo

AttributeTypeAdicionar

Insere um novo tipo de atributo / tipo de propriedade.

Argumentos Tipo
DataTypeID Texto
Descrição (=Identidade) Text
Nota: Não podem ser utilizadas palavras reservadas, incluindo «a», «frm», «id», «usr» e «bhold».
Comprimento máximo Número em [1,..,255]
ListOfValues (booleano) ["0"|"1"|"N"|"Y"]
DefaultValue Texto
Tipo de retorno Tipo
AttributeTypeID Texto

AttributeTypeSetAdd

Insere um novo conjunto de tipos de atributo. Requer que a descrição de um conjunto de tipos de atributo seja exclusiva.

Argumentos Tipo
Descrição (=Identidade) Texto
Tipo de retorno Tipo
AttributeTypeSetID Texto

AttributeTypeSetAddAttributeType

Insere um novo tipo de atributo em um conjunto de tipos de atributo existente. Requer que as descrições do conjunto de tipos de atributo e do tipo de atributo sejam exclusivas.

Argumentos Tipo
AttributeTypeSetID Texto
AttributeTypeID Texto
Encomenda Número
LocationID Text
Nota: O local é "grupo" ou "único".
Obrigatório ["0"|"1"|"N"|"Y"]
Tipo de retorno Tipo

ObjectTypeAddAttributeTypeSet

Adiciona um tipo de atributo definido a um tipo de objeto. Requer que a descrição do tipo de objeto e o conjunto de tipos de atributo sejam exclusivos. Os tipos de objeto são: System, OrgUnit, User, Task.

Argumentos Tipo
ObjectTypeID Texto
AttributeTypeSetID Texto
Encomenda Número
Visível
  • 0: O conjunto de tipos de atributo está visível.
  • 2: O conjunto de tipos de atributo é visível quando o botão mais informações é selecionado.
  • 1: O conjunto de tipos de atributo é invisível.
Tipo de retorno Tipo

OrgUnitadd

Cria uma nova unidade organizacional, retorna a ID da nova unidade organizacional.

Argumentos Tipo
descrição
orgtypeID
identificação dos pais
OrgUnitinheritedroles (opcional)
Tipo de retorno Tipo
ID da nova unidade O parâmetro OrgUnitinheritedroles
tem o valor sim ou não.

OrgUnitaddsupervisor

Faça de um usuário um supervisor de uma unidade organizacional.

Argumentos Tipo
svroleID O argumento userID também pode ser usado. Nesse caso, a função de supervisor padrão é selecionada. Uma função de supervisor padrão tem um nome como __svrole seguido por um número. O argumento userID pode ser usado para compatibilidade com versões anteriores.
OrgUnitID

OrgUnitadduser

Tornar um usuário membro de uma unidade organizacional.

Argumentos Tipo
ID de utilizador
OrgUnitID

OrgUnitdelete

Remove uma unidade organizacional.

Argumentos Tipo
OrgUnitID

OrgUnitdeleteuser

Remove um usuário como membro de uma unidade organizacional.

Argumentos Tipo
ID de utilizador
OrgUnitID

roleadd

Cria uma nova função.

Argumentos Tipo
Descrição
Svrole
svroleID (opcional) Se esse argumento não estiver presente, uma função de supervisor do usuário atual será usada.
ContextAdaptable (opcional) ["0","1","N","Y"]
MaxPermissions (opcional) Número inteiro
MaxRoles (opcional) Número inteiro
MaxUsers (opcional) Número inteiro
Tipo de retorno Tipo
ID da nova função

roleaddOrgUnit

Atribui uma função a uma unidade organizacional.

Argumentos Tipo
OrgUnitID ID da função
inheritThisRole 'true' ou 'false', indica se a função é proposta às unidades subjacentes.

roleaddrole

Atribui uma função como uma subfunção de outra função.

Argumentos Tipo
ID da função
subRoleID

RoleAddSupervisor

Tornar um usuário um supervisor de uma função.

Argumentos Tipo
svroleID O argumento userID também pode ser usado. Nesse caso, a função de supervisor padrão é selecionada. Uma função de supervisor padrão tem um nome como __svrole seguido por um número. O argumento userID pode ser usado para compatibilidade com versões anteriores.
ID da função

roleadduser

Atribui uma função a um usuário. A função não pode ser uma função adaptável ao contexto quando nenhum contextID é fornecido.

Argumentos Tipo
ID de utilizador
ID da função
durationType (opcional) Pode conter os valores 'livre', 'horas' e 'dias'.
durationLength (opcional) Obrigatório quando durationType é 'horas' ou 'dias'. deve conter o valor inteiro para o número de horas ou dias em que a função é atribuída a um usuário.
Início (opcional) Data e hora em que a função é atribuída. Quando esse atributo é omitido, a função é atribuída imediatamente. O formato de data é «AAAA-MM-DDThh:nn:ss», em que apenas são necessários o ano, o mês e o dia. por exemplo, "2004-12-11" e "2004-11-28T08:00" são valores válidos.
fim (opcional) Data e hora em que a função é revogada. Quando durationType e durationLength são fornecidos, esse valor é ignorado. O formato de data é «AAAA-MM-DDThh:nn:ss», em que apenas são necessários o ano, o mês e o dia. por exemplo, "2004-12-11" e "2004-11-28T08:00" são valores válidos.
linkreason Obrigatório quando o início, o fim ou a duração são fornecidos, caso contrário, ignorados.
contextId (opcional) ID da unidade organizacional, necessária apenas para funções adaptáveis ao contexto.

roledelete

Exclui uma função.

Argumentos Tipo
ID da função

roledeleteuser

Remove a atribuição de função a um usuário. As funções herdadas pelo usuário são revogadas por este comando.

Argumentos Tipo
ID de utilizador
ID da função
contextID (opcional)

roleproposeOrgUnit

Propõe uma função para atribuí-la aos membros e às sub-OrgUnits de uma OrgUnit.

Argumentos Tipo
OrgUnitID
ID da função
durationType (opcional) Pode conter valores 'livre', 'horas' e 'dias'.
duraçãoDuração Obrigatório quando durationType é 'horas' ou 'dias', deve conter o valor inteiro para o número de horas ou dias que a função é atribuída a um usuário.
duraçãoFixo 'true' ou 'false', indica se a atribuição dessa função a um usuário deve ser igual a durationLength.
inheritThisRole 'true' ou 'false', indica se a função é proposta às unidades subjacentes.

taskadd

Cria uma nova tarefa, retorna a ID da nova tarefa.

Argumentos Tipo
ID do aplicativo
descrição Texto com um máximo de 254 caracteres.
nome da tarefa Texto com um máximo de 254 caracteres.
tokenGroupID
svroleID (opcional) Se esse argumento não estiver presente, uma função de supervisor do usuário atual será usada.
contextAdaptable (opcional) ["0","1","N","Y"]
subconstrução (opcional) ["0","1","N","Y"]
auditaction (opcional)
  • 0: Desconhecido (padrão)
  • 1: ReportOnly
  • 2: AlertAppAll
  • 3: AlertAppObsolete
  • 4: AlertAppMissing
  • 5: EnforceAppAll
  • 6: EnforceAppObsolete
  • 7: EnforceAppMissing
  • 8: AlertEnforceAppAll
  • 9: AlertEnforceAppObsolete
  • 10: AlertEnforceAppMissing
  • 11: ImportAll
auditalertmail (opcional) O endereço de e-mail para receber alertas sobre essa permissão é enviado pelo auditor. Se esse argumento não estiver presente, o endereço de email de alerta do auditor será usado.
MaxRoles (opcional) Número inteiro
MaxUsers (opcional) Número inteiro
Tipo de retorno ID da nova tarefa.

taskadditask

Indique que duas tarefas são incompatíveis.

Argumentos Tipo
ID da tarefa
taskID2

taskaddrole

Atribui uma tarefa a uma função.

Argumentos Tipo
ID da função
ID da tarefa

TaskAddSupervisor

Torne um usuário um supervisor de uma tarefa.

Argumentos Tipo
svroleID O argumento userID também pode ser usado. Nesse caso, a função de supervisor padrão é selecionada. Uma função de supervisor padrão tem um nome como __svrole seguido por um número. O argumento userID pode ser usado para compatibilidade com versões anteriores.
ID da tarefa

useradd

Cria um novo usuário, retorna a ID do novo usuário.

Argumentos Tipo
descrição
pseudónimo
languageID
  • 1: Inglês
  • 2: Holandês
OrgUnitID
Data de fim (opcional) O formato de data é «AAAA-MM-DDThh:nn:ss», em que apenas são necessários o ano, o mês e o dia. por exemplo, "2004-12-11" e "2004-11-28T08:00" são valores válidos.
deficiente (opcional)
  • 0: Ativado
  • 1: Desativado
MaxPermissions (opcional) Número inteiro
MaxRoles (opcional) Número inteiro
Tipo de retorno ID do novo utilizador.

UserAddRole

Adiciona uma função de usuário.

Argumentos Tipo

UserDeleteRole

Exclui uma função de usuário.

Argumentos Tipo

Userupdate

Atualiza um usuário.

Argumentos Tipo
ID de utilizador
Descrição (opcional)
Idioma
  • 1: Inglês
  • 2: Holandês
userDisabled (opcional)
  • 0: Ativado
  • 1: Desativado
UserEndDate (opcional) O formato de data é «AAAA-MM-DDThh:nn:ss», em que apenas são necessários o ano, o mês e o dia. por exemplo, "2004-12-11" e "2004-11-28T08:00" são valores válidos.
nomenclatura (opcional)
middleName (opcional)
sobrenome (opcional)
maxPermissions (opcional) Número inteiro
maxRoles (opcional) Número inteiro

Funções GetInfo

O conjunto de funções descrito nesta seção pode ser usado para recuperar informações armazenadas no sistema BHOLD. Cada função pode ser chamada usando a função GetInfo do objeto BScript. Alguns objetos requerem parâmetros. Os dados retornados estão sujeitos às permissões de exibição e aos objetos supervisionados do usuário conectado.

Argumentos GetInfo

Nome Descrição
Aplicações Retorna uma lista de aplicativos.
tipos de atributos Retorna uma lista de tipos de atributos.
Orgtypes Retorna uma lista de tipos de unidade organizacional.
OrgUnits Retorna uma lista de unidades organizacionais sem os atributos das unidades organizacionais.
OrgUnitproposedroles Retorna uma lista de funções propostas vinculadas à unidade organizacional.
OrgUnitroles Retorna uma lista de funções diretamente vinculadas de determinada unidade organizacional
Objecttypeattributetypes
Permissões
permissionusers
funções Retorna uma lista de funções.
funçõestarefas Retorna uma lista de tarefas da função determinada.
tarefas Retorna todas as tarefas conhecidas por BHOLD.
utilizadores Retorna uma lista de usuários.
funções de usuário Retorna a lista de funções de supervisor vinculadas de determinado usuário.
permissões de usuário Retorna a lista de permissões do usuário determinado.

Informação OrgUnit

Nome Parâmetros Tipo de retorno
OrgUnit OrgUnitID OrgUnit
OrgUnitasiattributes OrgUnitID Coleção
OrgUnits filtro (opcional), proptypeid (opcional)
Procura unidades que contenham a cadeia de caracteres descrita em filtro no proptype descrito em proptypeid. Se este ID for omitido, o filtro aplica-se à descrição da unidade. Se nenhum filtro for fornecido, todas as unidades visíveis serão retornadas.
Coleção
OrgUnitOrgUnits OrgUnitID Coleção
OrgUnitparents OrgUnitID Coleção
OrgUnitpropertyvalues OrgUnitID Coleção
OrgUnitproptypes Coleção
OrgUnitusers OrgUnitID Coleção
OrgUnitproposedroles OrgUnitID Coleção
OrgUnitroles OrgUnitID Coleção
OrgUnitinheritedroles OrgUnitID Coleção
OrgUnitsupervisors OrgUnitID Coleção
OrgUnitinheritedsupervisores OrgUnitID Coleção
OrgUnitsupervisorroles OrgUnitID Coleção

Informações sobre a função

Nome Parâmetros Tipo de retorno
Função ID da função Objeto
funções filtro (opcional) Coleção
roleasiattributes ID da função Coleção
roleOrgUnits ID da função Coleção
papéis parentais ID da função Coleção
funçãosubfunções ID da função Coleção
supervisores de funções ID da função Coleção
funçãosupervisores ID da função Coleção
funçõestarefas ID da função Coleção
usuários de função ID da função Coleção
funçãosupervisores ID da função Coleção
proposedroleOrgUnits ID da função Coleção
propostoroleusers ID da função Coleção

Permissão - Informações da tarefa

Nome Parâmetros Tipo de retorno
permissão TaskID Permissão
Permissões filtro (opcional) Coleção
permissionasiattributes TaskID Coleção
permissãoanexos TaskID Coleção
PermissionAttributeTypes - Coleção
permissionparams TaskID Coleção
PermissionRoles TaskID Coleção
permissionsupervisores TaskID Coleção
PermissãoSupervisorFunções TaskID Coleção
permissionusers TaskID Coleção
tarefa TaskID Tarefa
tarefas filtro (opcional) Coleção
taskattachments TaskID Coleção
Parâmetros de tarefas TaskID Coleção
funções de tarefa TaskID Coleção
supervisores de tarefas TaskID Coleção
TarefasSupervisorFunções TaskID Coleção
usuários de tarefas TaskID Coleção

Informação do utilizador

Nome Parâmetros Tipo de retorno
utilizador ID de utilizador Utilizador
utilizadores filtro (opcional), attributetypeid (opcional)
Procura usuários que contêm no attributetype especificado por attributetypeid a cadeia de caracteres especificada pelo filtro. Se essa ID for omitida, o filtro se aplicará ao alias padrão do usuário. Se nenhum filtro for fornecido, todos os usuários visíveis serão retornados. Por exemplo:
  • GetInfo("users") retorna todos os usuários.
  • GetInfo("users", "%dmin%") retorna todos os usuários com a cadeia de caracteres "dmin" no alias padrão.
  • Suponha que os usuários tenham um atributo extra chamado "City".GetInfo("users", "%msterda%", "City"). Esta chamada retorna todos os usuários com a cadeia de caracteres "msterda" no atributo City.
Coleção de usuários
usuáriosaplicativos ID de utilizador Coleção
Permissões de usuário ID de utilizador Coleção
funções de usuário ID de utilizador Coleção
funções de usuário ID de utilizador Coleção
usuáriostarefas ID de utilizador Coleção
unidades de usuários ID de utilizador Coleção
tarefas do usuário ID de utilizador Coleção
unidades de utilizador ID de utilizador Coleção

Tipos de devolução

Nesta seção, os tipos de retorno da função GetInfo são descritos.

Nome Tipo de retorno
Coleção =<ITEMS>{<ITEM description="..." id="..." />}</ITEMS>
Objeto =<ITEM type="…" description="..." />
OrgUnit = <ITEM id="…" description="..." orgtype="..." parent="..."> <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM>
Permissão = <ITEM id="…" description="…" name="…" tokengroup="…" application="…" > <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM>
Funções = <ITEMS> {<ITEM id="…" description="…" />} </ITEMS>
Funções = <ITEM id="…" description="… " > <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM>
Tarefa Ver permissão
Utilizadores = <ITEMS> {<ITEM description="…" id="…" alias="…" />} </ITEMS>
Utilizador = <ITEM id="…" description="…" alias="…" firstname="…" lastname="…" uuid="…" language="…"> <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM>

Exemplo de script

Uma empresa tem um servidor BHOLD e quer um script automatizado que crie novos clientes. As informações sobre a empresa e seu gerente de compras entram em uma página web personalizada. Cada cliente é apresentado no modelo como uma unidade sob os clientes da unidade. O gestor de compras é tão membro como supervisor desta unidade. É criada uma função que dá aos proprietários o direito de comprar em nome do novo cliente.

No entanto, esse cliente não existe no aplicativo. Há uma função especial implementada no ASI FunctionDispatch que cria uma nova conta de cliente no aplicativo de compra. Cada cliente tem um tipo de cliente.

Os tipos possíveis podem ser apresentados pela função FunctionDispatch também. O AA escolhe o tipo correto para o novo cliente.

Crie uma função e uma tarefa para apresentar os privilégios de compra. O privilégio de compra real é apresentado pelo ASI como um arquivo /customers/customer id/purchase. Esse arquivo deve ser vinculado à nova tarefa.

A página do Ative Server que reúne as informações tem esta aparência:

<%@ Language=VBScript %>
<% Option Explicit %>
<html>
<body>
<form action="MySubmit.asp" method=post>
<input type="hidden" name="OrgUnitID" 
     value="<% = Request("ID") %>">
Company <input type="text" name="Description"> <br>
Type <select name="OrgType">
<%Dim oOrgType
For Each oOrgType on bscript.getinfo("Orgtypes") %>
<option value="<% = oOrgType.OrgTypeID %>">
<% = oOrgType.Description %>
</option> <%
Next %>
</select>  <br>
Manager <input type="text" name=" manager"> <br>
Alias <input type=" text" name=" alias"> <br>
e-mail <input type=" text" name=" email"> <br>
<input type="submit">
</form>
</body>
</html>

Tudo o que as páginas personalizadas teriam que fazer é solicitar as informações corretas e criar um documento XML com as informações solicitadas. Neste exemplo, a página MySubmit transforma os dados no documento XML, atribuindo-os ao b1script. Os parâmetros objeto e, finalmente, chama a função b1script.ExecuteScript("MyScript").

O script de entrada a seguir mostra este exemplo:

<customer>
<description>ACME inc.</description>
<orgtype>5<orgtype>
<name>John Doe</name>
<alias>jdoe</alias>
<email>jdoe@acme.com</email>
</customer>

Este script de entrada não contém comandos para BHOLD. Isso ocorre porque esse script não é executado diretamente por BHOLD; em vez disso, esta é a entrada para uma função pré-definida. Esta função predefinida traduz este objeto para um documento XML com comandos BHOLD. Esse mecanismo impede que o usuário envie scripts para o sistema BHOLD que contenham funções que o usuário não tem permissão para executar, como setUser e despachos de função para um ASI.

<?xml version="1.0" encoding="utf-8" ?> 
- <functions xmlns="http://tempuri.org/BscriptFunctions.xsd">

  <function name="roleadduser" roleid="" userid="" /> 
  <function name="roledeleteuser" roleid="" userid="" /> 
  </functions>

Próximos passos