Actions API

The Actions API provides REST endpoints that you can use to run a variety of actions in YAML or JSON format or in an existing legacy BTXML script, and manage the scripts and variables related to those actions.

The actions that you can run by using the Actions API include many of the same actions that you can run in BarTender Designer, Integration Builder, and Process Builder. For a list of the actions supported by the Actions API, see Available Actions in the Actions API.

For more information, you can view the API reference by using ReDoc. In ReDoc, you can expand the items in the left navigation pane and then scroll to find the commands that you want. Vous pouvez copier chaque commande dans votre environnement de développement et la personnaliser selon vos besoins.

To view the API reference in ReDoc, in the browser address bar, enter the following URL, and substitute "localhost" with the name or IP address of the computer that is running BarTender:

http://localhost:5159/api/actions/reference/

Action

Commande

Description

Submit a Script to Run

Envoie un script à exécuter.

Get a List of Submitted Scripts

Obtient une liste de scripts qui ont été soumis au serveur.

Update Script Properties

Modifie les propriétés « KeepStatus » ou « Command » du script.

Obtenir l'état d'exécution d'un script

Obtient l’état d’exécution d'un script.

Get All Variable Values

Obtient les valeurs de toutes les variables.

Get the Value of the Specified Variable

Gets the value of the specified variable.

Lorsque vous utilisez une commande POST, vous pouvez demander à BarTender d'effectuer diverses actions. Vous pouvez utiliser les paramètres de la commande POST pour spécifier le temps d'attente pour la réalisation des actions ou les messages que vous souhaitez recevoir. Après avoir envoyé la commande POST, le serveur renvoie une réponse. Cette réponse contient un code d'état HTTP qui indique si le script a été accepté. Les réponses réussies comprennent également l'ID du script, dont vous avez besoin pour utiliser les commandes PATCH et GET. Par défaut, une fois l'exécution des actions terminée, les données d'action telles que l'état, les messages et les variables sont stockées dans le serveur pendant 60 minutes, mais vous pouvez modifier ce paramètre et d'autres si nécessaire.

Les scripts d'action que vous publiez peuvent être au format YAML ou JSON. Le document de référence YAML qui est inclus dans le fichier d'installation de BarTender fournit des détails complets sur les propriétés spécifiques de chaque action et décrit comment combiner des actions en groupes et créer des tableaux d'actions à envoyer comme un seul script au serveur. For more information about how to access the YAML reference, refer to Available Actions in the Actions API.

Vous pouvez utiliser plusieurs méthodes pour envoyer vos scripts au serveur, notamment les commandes cURL, les scripts PowerShell et JavaScript, comme le montrent les exemples de code suivants.

Exemple d'une commande cURL qui imprime un document BarTender

c:\Windows\System32\curl.exe -u : --negotiate "http://localhost:5159/api/actions?Wait=30s&MessageCount=200&MessageSeverity=Info" -X POST -H "Content-Type: application/json" -d "{ \"PrintBTWAction\" : { \"DocumentFile\": \"D:\\Temp\\Sample.btw\" } }"

Exemple d'un script PowerShell qui imprime tous les fichiers *.btw dans un dossier spécifié

param (

[string]$btw_folder = "C:\samples",

[string]$out_pdf_folder = "c:\samples\out",

[string]$out_pdf_filename = "PrintByPrintBTWAction.pdf"

)

 

$template = "

PrintBTWAction:

Document : {0}

Printer: PDF

PrintToFileFolder : $out_pdf_folder

PrintToFileFileName : $out_pdf_filename

SaveAfterPrint: faux

"

 

$files = @(Get-ChildItem ($btw_folder + "\*.btw"))

pour chaque ($file dans $files)

{

$script = ($template -f $file)

Write-Host $script

c:\windows\system32\curl -u : --negotiate "http://localhost:5159/api/actions?Wait=30s&MessageCount=200&MessageSeverity=Info" -X POST -H "Content-Type: text/vnd.yaml" -d "$script"

}

Exemple d'un script JavaScript qui imprime un document BarTender

<!DOCTYPE html>

<html>

<head>

<script>

const actionScript = '\

{\

"PrintBTWAction »: {\

"Document »: "C:/Samples/Sample.btw",\

"Imprimante »: "PDF",\

« PrintToFileFolder" : "c:/samples/out",\

"PrintToFileFileName" : "PrintByPrintBTWAction.pdf",\

"SaveAfterPrint": faux\

}\

}\

';

 

fonction sendByFetch()

{

url = "http://localhost:5159/api/actions?Wait=30s&MessageCount=200&MessageSeverity=Info"

 

récupérer(url,

{

Méthode : "POST",

corps : actionScript,

Informations d'identification : 'incluent'

})

.puis(fonction(réponse) {

var contentType = response.headers.get("content-type");

si(contentType && contentType.includes("application/json"))

{

return response.json();

}

throw new TypeError("Oops, we haven't got JSON!");

})

.then(function(json)

{

document.getElementById("responseOfFetch").innerHTML += ("<p>" + JSON.stringify(json) + "</p>")

})

.catch(function(erreur)

{

console.log(erreur) ;

document.getElementById("responseOfFetch").innerHTML += ("<p>" + erreur + "</p>")

});

}

<script>

<head>

<body>

 

<h2>Imprimer via API REST</h2>

 

<button type="button" onclick="sendByFetch()">Envoyer demande d'impression</button>

<p id="responseOfFetch"></p>

<br/>

 

</body>

<html>