Referência de desenvolvedor do BHOLD para 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 o serviço Web b1scriptservice.asmx interface.
Antes que um script seja executado, todas as informações dentro do script devem ser coletadas para compor esse script. Essas informações podem ser coletadas das seguintes fontes:
- Entrada do usuário
- Dados do BHOLD
- Aplicativos
- Outro
Os dados do 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 BHOLD. No entanto, os dados apresentados estão sujeitos às permissões de exibição do usuário conectado. O resultado é na forma de um documento XML que pode ser analisado.
Outra fonte de informações pode ser um dos aplicativos controlados 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.
Por fim, se não houver outra maneira, o script poderá conter comandos diretamente para outros aplicativos ou sistemas. A noThenstallation de software extra no servidor BHOLD pode prejudicar 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 BHOLD. O objeto combina este documento com uma função predefinida. A função predefinida é um documento XSL que converte o documento de entrada de script em um documento de comando do BHOLD.
Os comandos são executados na mesma ordem que no documento. Se uma função falhar, todos os comandos executados serão revertidos.
Objeto Script
Esta seção descreve como usar o objeto script.
Recuperar informações do BHOLD
A função GetInfo é usada para recuperar informações dos dados disponíveis no sistema de autorização do 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 do erro e o número 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. Essa função requer três parâmetros: a ID do aplicativo, a função de expedição como ela é definida na 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 no formato XML no objeto de resultado.
O snippet abaixo é um exemplo simples de C# de GetInfo:
ScriptProcessor myScriptProcessor = new ScriptProcessor();
myScriptProcessor.Initializae("CORP\\b1user");
myScriptProcessor.GetInfo("OrgUnit", "1");
Da mesma forma, o objeto BScript também pode ser acessado por meio do serviço b1scriptservice
Web . Isso é feito adicionando uma referência da Web ao projeto usando http://< server>:5151/BHOLD/Core/b1scriptservice.asmx, em <que o servidor> é o servidor com os binários BHOLD instalados. Para obter mais informações, consulte Adicionar 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 uma OrgID de 1 e 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 de 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 Referência Gerenciada do BHOLD ou navegue até o serviço Web diretamente de um navegador e exiba-os 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. Essa 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. InIn the BHOLD predefined scripts directory, here should be an XSL document with the same name as the function, but with the .xsl extension.
Se a função não for bem-sucedida, a função ExecuteScript retornará o valor False. A descrição e o número do erro podem ser usados para saber o que deu errado. Veja a seguir um exemplo de como usar o método Web ExecuteXML. Esse 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, todas as IDs geradas são adicionadas.
Observe que somente as funções, que contêm um erro, são adicionadas. Um número de erro '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 ID
Os parâmetros de ID recebem tratamento especial. Valores não numéricos são usados como valor de pesquisa para localizar as entidades correspondentes no armazenamento de dados do BHOLD. 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 pesquisa. Caracteres curinga do SQL '%' podem ser usados.
Os seguintes campos são usados com o valor de pesquisa:
Tipo ID | Campo de pesquisa |
---|---|
OrgUnitID | Descrição |
roleID | Descrição |
Taskid | Descrição |
userID | DefaultAlias |
Acesso e permissões de script
O código do lado do servidor nas Páginas do Servidor Ativo é usado para executar os scripts. Portanto, o acesso ao script significa acesso a essas páginas. O sistema BHOLD mantém informações sobre os pontos de entrada das páginas personalizadas. Essas informações incluem a página inicial e a descrição da função (vários idiomas devem ter suporte).
Um usuário está autorizado a inserir as páginas personalizadas e executar um script. Cada ponto de entrada é apresentado como uma tarefa. Cada usuário que ganhou essa tarefa por meio de uma função ou 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. Como um script pode executar ações no sistema BHOLD em uma identidade diferente do usuário conectado. É possível conceder permissão para executar uma ação específica sem ter supervisão sobre nenhum 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 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> |
---|---|
funções | função {function} |
função | <função name="functionName" functionParameters [return] (/> | > parameterList </function>) |
functionName | Um nome de função válido, conforme descrito nas seções a seguir. |
functionParameters | { functionParameter } |
Functionparameter | parameterName = "parameterValue" |
parameterName | Um nome de parâmetro válido. |
Parametervalue | @variable@ | Valor |
value | Um valor de parâmetro válido. |
Parameterlist | <parâmetros> {parameterItem} </parameters> |
parameterItem | <parâmetro name="parameterName"> parameterValue </parameter> |
return | return="@variable@" |
variável | Um nome de variável personalizado. |
O XML tem as seguintes traduções de caracteres especiais:
XML | Caractere |
---|---|
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
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. Essa variável é usada como entrada para a função UserAdd. O valor retornado dessa 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 retornados.
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 atributo possíveis.
O RuleType não pode ser alterado com o comando "ABAattributeruletypeupdate". Requer que a descrição do atributo seja exclusiva.
Argumentos | Tipo |
---|---|
Descrição | Texto |
RuleType | Especifique o tipo de regra de atributo. Dependendo do tipo 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 | Texto Observação: esse argumento será obrigatório se RuleType for 1 ou 4. Os valores possíveis são '=', '<' ou '>'. As marcas XML precisam usar ">" para ">" e "<" para "<". |
RangeMin | Número Observação: esse argumento será obrigatório se RuleType for 3. |
RangeMax | Número Observação: esse argumento será obrigatório se RuleType for 3. |
Valor | Texto Observação: esse argumento será 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 |
applicationadd
Cria um novo aplicativo e retorna a ID do novo aplicativo.
Argumentos | Tipo |
---|---|
descrição | |
computador | |
module | |
parâmetro | |
protocolo | |
Nome de Usuário | |
password | |
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 será criado se o usuário ainda não tiver um alias para esse aplicativo. Se nenhum valor for fornecido, o alias padrão do usuário será usado como alias para o aplicativo. A fórmula é formatada como [<<objecttype>>.<<nameofobjecttypeattribute>>(startindexoffset,length offset)] . O deslocamento é opcional. Somente atributos de Usuário e Aplicativo podem ser usados. O texto livre pode ser usado. 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 |
AttributeTypeAdd
Insere um novo tipo de atributo/tipo de propriedade.
Argumentos | Tipo |
---|---|
DataTypeID | Texto |
Descrição (=Identidade) | Texto Observação: palavras reservadas não podem ser usadas, incluindo 'a', 'frm', 'id', 'usr' e 'bhold'. |
MaxLength | Número em [1,..,255] |
ListOfValues (booliano) | ["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 tipo de atributo definido e do tipo de atributo sejam exclusivas.
Argumentos | Tipo |
---|---|
AttributeTypeSetID | Texto |
AttributeTypeID | Texto |
Ordem | Número |
LocationID | Texto Observação: 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 |
Ordem | Número |
Visible |
|
Tipo de retorno | Tipo |
OrgUnitadd
Cria uma nova unidade organizacional e retorna a ID da nova unidade organizacional.
Argumentos | Tipo |
---|---|
descrição | |
orgtypeID | |
parentID | |
OrgUnitinheritedroles (opcional) | |
Tipo de retorno | Tipo |
ID da nova unidade | O parâmetro OrgUnitinheritedroles tem o valor sim ou não. |
OrgUnitaddsupervisor
Torne 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
Torne um usuário membro de uma unidade organizacional.
Argumentos | Tipo |
---|---|
userID | |
OrgUnitID |
OrgUnitdelete
Remove uma unidade organizacional.
Argumentos | Tipo |
---|---|
OrgUnitID |
OrgUnitdeleteuser
Remove um usuário como membro de uma unidade organizacional.
Argumentos | Tipo |
---|---|
userID | |
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) | Integer |
MaxRoles (opcional) | Integer |
MaxUsers (opcional) | Integer |
Tipo de retorno | Tipo |
ID da nova função |
roleaddOrgUnit
Atribui uma função a uma unidade organizacional.
Argumentos | Tipo |
---|---|
OrgUnitID | roleID |
inheritThisRole | 'true' ou 'false', indica se a função é proposta para unidades subjacentes. |
roleaddrole
Atribui uma função como um subrole de outra função.
Argumentos | Tipo |
---|---|
roleID | |
subRoleID |
roleaddsupervisor
Torne 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. |
roleID |
roleadduser
Atribui uma função a um usuário. A função não pode ser uma função adaptável de contexto quando nenhuma contextID é fornecida.
Argumentos | Tipo |
---|---|
userID | |
roleID | |
durationType (opcional) | Pode conter os valores 'free', 'hours' e 'days'. |
durationLength (opcional) | Obrigatório quando durationType é 'hours' ou 'days'. deve conter o valor inteiro para o número de horas ou dias que a função é atribuída a um usuário. |
iniciar (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 é 'YYYY-MM-DDThh:nn:ss", em que somente ano, mês e dia são necessários. por exemplo, "2004-12-11" e "2004-11-28T08:00" são valores válidos. |
end (opcional) | Data e hora em que a função é revogada. Quando durationType e durationLength são fornecidos, esse valor é ignorado. O formato de data é 'YYYY-MM-DDThh:nn:ss", em que somente ano, mês e dia são necessários. por exemplo, "2004-12-11" e "2004-11-28T08:00" são valores válidos. |
linkreason | Necessário quando iniciar, terminar ou duração for dado, caso contrário, ignorado. |
contextId (opcional) | ID da unidade organizacional, necessária apenas para funções adaptáveis de contexto. |
roledelete
Exclui uma função.
Argumentos | Tipo |
---|---|
roleID |
roledeleteuser
Remove a atribuição de função para um usuário. As funções herdadas pelo usuário são revogadas por esse comando.
Argumentos | Tipo |
---|---|
userID | |
roleID | |
contextID (opcional) |
roleproposeOrgUnit
Propõe uma função para atribuí-la aos membros e às sub-OrgUnits de um OrgUnit.
Argumentos | Tipo |
---|---|
OrgUnitID | |
roleID | |
durationType (opcional) | Pode conter valores 'free', 'hours' e 'days'. |
durationLength | Necessário quando durationType for 'hours' ou 'days', deve conter o valor inteiro para o número de horas ou dias que a função é atribuída a um usuário. |
durationFixed | '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 para unidades subjacentes. |
taskadd
Cria uma nova tarefa e retorna a ID da nova tarefa.
Argumentos | Tipo |
---|---|
Applicationid | |
descrição | Texto com no máximo 254 caracteres. |
Taskname | Texto com no máximo 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"] |
underconstruction (opcional) | ["0","1","N","Y"] |
auditaction (opcional) |
|
auditalertmail (opcional) | O endereço de email para os alertas sobre essa permissão são enviados pelo auditor. Se esse argumento não estiver presente, o endereço de email de alerta do auditor será usado. |
MaxRoles (opcional) | Integer |
MaxUsers (opcional) | Integer |
Tipo de retorno | ID da nova tarefa. |
taskadditask
Indique que duas tarefas são incompatíveis.
Argumentos | Tipo |
---|---|
Taskid | |
taskID2 |
taskaddrole
Atribui uma tarefa a uma função.
Argumentos | Tipo |
---|---|
roleID | |
Taskid |
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. |
Taskid |
Useradd
Cria um novo usuário e retorna a ID do novo usuário.
Argumentos | Tipo |
---|---|
descrição | |
alias | |
Languageid |
|
OrgUnitID | |
enddate (opcional) | O formato de data é 'YYYY-MM-DDThh:nn:ss", em que somente ano, mês e dia são necessários. por exemplo, "2004-12-11" e "2004-11-28T08:00" são valores válidos. |
desabilitado (opcional) |
|
MaxPermissions (opcional) | Integer |
MaxRoles (opcional) | Integer |
Tipo de retorno | ID do novo usuário. |
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 |
---|---|
UserID | |
description (opcional) | |
Linguagem |
|
userDisabled (opcional) |
|
UserEndDate (opcional) | O formato de data é 'AAAA-MM-DDThh:nn:ss", em que somente ano, mês e dia são necessários. por exemplo, "2004-12-11" e "2004-11-28T08:00" são valores válidos. |
firstName (opcional) | |
middleName (opcional) | |
lastName (opcional) | |
maxPermissions (opcional) | Integer |
maxRoles (opcional) | Integer |
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 exigem 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 |
---|---|
de dimensionamento da Web | Retorna uma lista de aplicativos. |
attributetypes | Retorna uma lista de tipos de atributo. |
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 da unidade organizacional fornecida |
Objecttypeattributetypes | |
permissões | |
permissionusers | |
funções | Retorna uma lista de funções. |
roletasks | Retorna uma lista de tarefas da função fornecida. |
tarefas | Retorna todas as tarefas conhecidas pelo BHOLD. |
users | Retorna uma lista de usuários. |
usersroles | Retorna a lista de funções de supervisor vinculadas do usuário determinado. |
userpermissions | Retorna a lista de permissões do usuário especificado. |
Informações do OrgUnit
Nome | Parâmetros | Tipo de retorno |
---|---|---|
OrgUnit | OrgUnitID | OrgUnit |
OrgUnitasiattributes | OrgUnitID | Coleção |
OrgUnits | filter (opcional), proptypeid (opcional) Pesquisa unidades que contêm a cadeia de caracteres descrita no filtro no proptype descrito em proptypeid. Se essa ID for omitida, o filtro se aplicará à 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 |
OrgUnitinheritedsupervisors | OrgUnitID | Coleção |
OrgUnitsupervisorroles | OrgUnitID | Coleção |
Informações de função
Nome | Parâmetros | Tipo de retorno |
---|---|---|
função | roleID | Objeto |
funções | filter (opcional) | Coleção |
roleasiattributes | roleID | Coleção |
roleOrgUnits | roleID | Coleção |
roleparentroles | roleID | Coleção |
rolesubroles | roleID | Coleção |
rolesupervisors | roleID | Coleção |
rolesupervisorroles | roleID | Coleção |
roletasks | roleID | Coleção |
roleusers | roleID | Coleção |
rolesupervisorroles | roleID | Coleção |
proposedroleOrgUnits | roleID | Coleção |
proposedroleusers | roleID | Coleção |
Permissão – Informações da tarefa
Nome | Parâmetros | Tipo de retorno |
---|---|---|
permissão | TaskID | Permissão |
permissões | filter (opcional) | Coleção |
permissionasiattributes | TaskID | Coleção |
permissionattachments | TaskID | Coleção |
permissionattributetypes | - | Coleção |
permissionparams | TaskID | Coleção |
permissionroles | TaskID | Coleção |
permissionsupervisors | TaskID | Coleção |
permissionsupervisorroles | TaskID | Coleção |
permissionusers | TaskID | Coleção |
task | TaskID | Tarefa |
tarefas | filter (opcional) | Coleção |
taskattachments | TaskID | Coleção |
quadros de tarefas | TaskID | Coleção |
taskroles | TaskID | Coleção |
tasksupervisors | TaskID | Coleção |
tasksupervisorroles | TaskID | Coleção |
taskusers | TaskID | Coleção |
Informações do usuário
Nome | Parâmetros | Tipo de retorno |
---|---|---|
usuário | UserID | Usuário |
users | filter (opcional), attributetypeid (opcional) Pesquisa usuários que contêm no tipo de atributo 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:
|
Usercollection |
usersapplications | UserID | Coleção |
Userpermissions | UserID | Coleção |
userroles | UserID | Coleção |
usersroles | UserID | Coleção |
userstasks | UserID | Coleção |
usersunits | UserID | Coleção |
usertasks | UserID | Coleção |
userunits | UserID | Coleção |
Tipos de retorno
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ção | = <ITEM id="…" description="… " > <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
Tarefa | Consulte Permissão |
Usuários | = <ITEMS> {<ITEM description="…" id="…" alias="…" />} </ITEMS> |
Usuário | = <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 deseja um script automatizado que crie novos clientes. As informações sobre a empresa e seu gerente de compras entram em uma página da Web personalizada. Cada cliente é apresentado no modelo como uma unidade nos clientes da unidade. O gerente de compras também é membro como supervisor desta unidade. Uma função é criada 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 também podem ser apresentados pela função FunctionDispatch. 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 estar vinculado à nova tarefa.
A Página do Servidor Ativo que coleta 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 certas 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. Objeto Parameters e, por fim, chama a b1script.ExecuteScript("MyScript")
função .
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>
Esse script de entrada não contém comandos para BHOLD. Isso ocorre porque esse script não é executado diretamente pelo BHOLD; em vez disso, essa é a entrada para uma função predefinida. Essa função predefinida converte esse objeto em um documento XML com comandos BHOLD. Esse mecanismo impede que o usuário envie scripts para o sistema BHOLD que contêm funções que o usuário não tem permissão para executar, como setUser e dispatches de função para uma 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>