# bpmn-xml-parser

> Tool to easily parse message flows of process models in bpmn

Latest version **1.6.0** (published 2019-07-09) · ISC license · 0 weekly downloads

## Install

```sh
npm install bpmn-xml-parser
pnpm add bpmn-xml-parser
yarn add bpmn-xml-parser
bun add bpmn-xml-parser
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.6.0 |
| Published | 2019-07-09 |
| First published | 2019-02-23 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 207 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Moritz Schindelmann |
| Maintainers | moritzschindelmann, pklinger |

## Links

- npm: https://www.npmjs.com/package/bpmn-xml-parser
- npm.io page: https://npm.io/package/bpmn-xml-parser

## Dependencies (1)

- [xml-js](https://npm.io/package/xml-js.md) ^1.6.9

## Recent versions

- 1.6.0 (latest) — 2019-07-09
- 1.5.0 — 2019-06-07
- 1.4.0 — 2019-04-27
- 1.3.6 — 2019-04-27
- 1.3.5 — 2019-04-27
- 1.3.4 — 2019-04-27
- 1.3.3 — 2019-04-27
- 1.3.2 — 2019-04-27
- 1.3.1 — 2019-04-27
- 1.3.0 — 2019-04-27
- 1.2.1 — 2019-02-26
- 1.2.0 — 2019-02-26
- 1.1.1 — 2019-02-23
- 1.1.0 — 2019-02-23
- 1.0.0 — 2019-02-23

## README

# BPMN XML Parser focused on message flows.

## Introduction

Process models can contain multiple collaborators. In that case, the communication and handover in the process is managed with message flows. The purpose of this package to parse bpm/xml diagrams to show the resulting dependencies between the collaborators in a way that can easily be handled programmatically.

## Code Samples

### **Import:**

    import XmlParser from "bpmn-xml-parser";

### **Initialize:**

    Object: new XmlParser(diagramString);

The diagramString parameter contains the full xml diagram as text/string.

### **Retrieve collaborationId:**

    String: xmlParser.getCollaborationId()

Can be useful as an identifier if you are working with multiple processes.

### **Retrieve id and name of participants/collaborators as object:**

    String[{label: name, value: id}]: xmlParser.getParticipantObjects()

Enables unaltered use in select lists like react-select.

### **Retrieve all names of participants/collaborators:**

    String[]: xmlParser.getParticipatingProcesses()

### **Set names of relevant participants/collaborators:**

    void: xmlParser.setParticipatingProcesses();

Use this if you are only interested in the dependencies of certain collaborators.

If you don't do this, all participants will be considered relevant.

### **Parse message flows:**

    JsObject: xmlParser.parseMessageFlows();

This is where the actual magic happens.

Example output:

    [
      {
        "participantId": "Participant_1rmkvs0",
        "processName": "Filiale",
        "processId": "Process_1x5g5w9",
        "processVersion": "",
        "conditionalElements": [
          {
            "id": "IntermediateThrowEvent_0hrerws",
            "name": "",
            "type": "bpmn:intermediateCatchEvent",
            "triggerId": "MessageFlow_0y4pgmw",
            "triggerName": "Bestätigung",
            "originOfTrigger": [
              {
                "originProcessId": "Process_1",
                "originProcessName": "Server",
                "originProcessVersion": "2",
                "originId": "EndEvent_0214v1a",
                "originName": "Kundenkonto erfolgreich angelegt",
                "originType": "bpmn:endEvent"
              }
            ]
          }
        ]
      }
    ]

## Installation

    npm install bpmn-xml-parser

---
_Source: https://npm.io/package/bpmn-xml-parser · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
