Skip to main content

Pedir reembolso

Diagrama#

pedido-reembolso

Descrição#

  • Nó 0: O processo sempre é iniciado num nó do tipo Start. Nesse caso, não há um parâmetro pré-definido.
  • Nó 1: Nó do tipo User Task que representa o ato de enviar o pedido de reembolso. Tem como parâmetro uma ação ("action").
  • Nó 2: Nó do tipo System Task e da categoria HTTP. Tem como parâmetro O "status" do pedido, o valor ("amount"), quem solicitou ("requester") e comentários ("comments"). Por ser da categoria HTTP, conta como uma requisição ("request"), que possui uma "url", um "verb" - que é o método da solicitação - e "headers".
  • Nó 3: Nó do tipo User Task que repsenta o ato de aprovar o pedido. Tem como parâmetros uma ação ("action"), o "status", o valor ("amount"), quem solicitou ("requester") e comentários ("comments").
  • Nó 4: Nó do tipo Flow Node que irá checar se o pedido foi aprovado. Por padrão ("default"), o objeto "next" irá enviar o processo para o nó 3. Caso o pedido tenha sido aprovado ("APPROVED"), seguirá para o nó 5. Se for negado ("DECLINED"), irá para o nó E1. Tem como parâmetro uma chave ("key").
  • Nó 5: Nó do tipo System Task e da categoria HTTP. Tem como parâmetros um "status" e uma requisição ("request") com "url", método ("verb") e "headers".
  • Nó 6: Nó do tipo User Task que representa o ato de revisar o pedido. Tem como parâmetros uma ação ("action"), um "status", um valor ("amount"), quem solicitou ("requester") e comentários ("comments").
  • Nó 7: Nó do tipo Flow Node que irá checar se o pedido foi aceito. Por padrão, o objeto "next" voltará para o nó 6. Caso tenha sido revisado ("REVIEWED"), seguirá para o nó 8. Caso tenha sido negado, irá para o nó E1. Tem como parâmetro uma chave ("key").
  • Nó 8: Nó do tipo User Task que representa o ato de realizar o depósito. Tem como parâmetro uma ação ("action").
  • Nó 9: Nó do tipo System Task e da categoria HTTP. Tem como parâmetros um "status", uma requisição ("request") com "url", método ("verb") e com "headers".
  • Nó 10: Nó do tipo User Task que representa o ato de avisar o requisitante. Tem como parâmetros uma ação ("action"), e um "status".
  • Nó 11: Nó final do tipo Finish Node. Nesse nó, a chave "next" sempre receberá um valor "null". O processo só chegará aqui caso o reembolso tenha sido aprovado.
  • Nó E1: Nó do tipo System Task e da categoria HTTP. Tem como parâmetros uma requisição ("request") com "url", método ("verb") e "headers", e um "status".
  • Nó E2: Nó do tipo User Task que representa o ato de avisar o requisitante. Tem como parâmetros uma ação ("action") e um "status".
  • Nó E3: Nó final do tipo Finish Node. Nesse nó, a chave "next" sempre receberá um valor "null". O processo só chegará aqui caso o reembolso tenha sido negado.

    Blueprint#

{
"name": "example_pedido_reembolso",
"description": "",
"blueprint_spec": {
"environment": {},
"require": ["core"],
"prepare": [],
"lanes": [
{
"id": "usuario",
"name": "qualquer usuario",
"rule": ["fn", ["&", "args"], true]
},
{
"id": "gestor",
"name": "somente para gestores",
"rule": ["fn", ["&", "args"], true]
},
{
"id": "financeiro",
"name": "somente depto financeiro",
"rule": ["fn", ["&", "args"], true]
}
],
"nodes": [
{
"id": "0",
"name": "Iniciar Pedido",
"next": "1",
"type": "start",
"lane_id": "usuario",
"parameters": {
"input_schema": {}
}
},
{
"id": "1",
"name": "Enviar pedido",
"next": "2",
"type": "userTask",
"lane_id": "usuario",
"parameters": {
"action": "DO_REQUEST",
"input": {}
}
},
{
"id": "2",
"name": "Cadastrar pedido",
"next": "3",
"type": "systemTask",
"category": "http",
"lane_id": "free",
"parameters": {
"request": {
"url": "url",
"verb": "POST",
"headers": {
"ContentType": "application/json"
}
},
"input": {
"status": "pending",
"amount": { "$ref": "result.activities[0].data.amount" },
"requester": { "$ref": "result.activities[0].data.requester"},
"comments": { "$ref": "result.activities[0].data.comments" }
}
}
},
{
"id": "3",
"name": "Aprovar pedido",
"next": "4",
"type": "userTask",
"lane_id": "gestor",
"parameters": {
"action": "APPROVE_REQUEST",
"input": {
"status": { "$ref": "result.data.status" },
"amount": { "$ref": "result.data.amount" },
"requester": { "$ref": "result.data.requester"},
"comments": { "$ref": "result.data.comments" }
}
}
},
{
"id": "4",
"name": "Pedido aprovado?",
"next": {
"APPROVED": "5",
"DECLINED": "E1",
"default": "3"
},
"type": "flow",
"lane_id": "gestor",
"parameters": {
"input": {
"key": { "$ref": "result.activitites[0].data.status" }
}
}
},
{
"id": "5",
"name": "Confirmar pedido",
"next": "6",
"type": "systemTask",
"category": "http",
"lane_id": "gestor",
"parameters": {
"request": {
"url": "url",
"verb": "PUT",
"headers": {
"ContentType": "application/json"
}
},
"input": {
"status": "APPROVED"
}
}
},
{
"id": "6",
"name": "Revisar pedido",
"next": "7",
"type": "userTask",
"lane_id": "financeiro",
"parameters": {
"action": "REVIEW_REQUEST",
"input": {
"status": { "$ref": "result.data.status" },
"amount": { "$ref": "result.data.amount" },
"requester": { "$ref": "result.data.requester"},
"comments": { "$ref": "result.data.comments" }
}
}
},
{
"id": "7",
"name": "Pedido aceito?",
"next": {
"REVIEWED": "8",
"DECLINED": "E1",
"default": "6"
},
"type": "flow",
"lane_id": "financeiro",
"parameters": {
"input": {
"key": { "$ref": "result.activitites[0].data.status" }
}
}
},
{
"id": "8",
"name": "Realizar depósito",
"next": "9",
"type": "userTask",
"lane_id": "financeiro",
"parameters": {
"action": "DO_TRANSFER",
"input": {}
}
},
{
"id": "9",
"name": "Realizar depósito",
"next": "10",
"type": "systemTask",
"category": "http",
"lane_id": "financeiro",
"parameters": {
"request": {
"url": "url",
"verb": "PUT",
"headers": {
"ContentType": "application/json"
}
},
"input": {
"status": "SETTLED"
}
}
},
{
"id": "10",
"name": "Avisar requisitante",
"next": "11",
"type": "userTask",
"lane_id": "free",
"parameters": {
"action": "NOTIFY_USER",
"input": {
"status": { "$ref": "result.data.status" }
}
}
},
{
"id": "11",
"name": "Fim do pedido",
"type": "Finish",
"lane_id": "free",
"next": null
},
{
"id": "E1",
"name": "Atualizar pedido",
"next": "E2",
"type": "systemTask",
"category": "http",
"lane_id": "free",
"parameters": {
"request": {
"url": "url",
"verb": "PUT",
"headers": {
"ContentType": "application/json"
}
},
"input": {
"status": "DECLINED"
}
}
},
{
"id": "E2",
"name": "Avisar requisitante",
"next": "E3",
"type": "userTask",
"lane_id": "free",
"parameters": {
"action": "NOTIFY_USER",
"input": {
"status": { "$ref": "result.data.status" }
}
}
},
{
"id": "E3",
"name": "Fim do pedido - recusado",
"type": "Finish",
"lane_id": "free",
"next": null
}
]
}
}