Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 |
|---|---|
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
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:
|
| 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 |
|
| 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) |
|
| 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 |
|
| 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) |
|
| 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 |
|
| userDisabled (opcional) |
|
| 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:
|
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
- Guia de conceitos BHOLD
- Histórico de versões do BHOLD