- Erste Schritte
- Für Administrators
- RPA-Workflow-Projekte
- Erstellen eines RPA-Workflows aus einer Idee
- Erstellen eines Projekts
- So starten Sie einen RPA-Workflow
- Verwalten von Projektdateien und -ordnern
- Verbinden von RPA-Workflows mit Ihren Konten
- Konfigurieren von Aktivitäten
- Verwalten der Aktivitäten in einem Projekt
- Übergeben von Werten zwischen Aktivitäten
- Iterieren durch Elemente
- Verwalten der Daten in einem Projekt
- Konfigurieren eines Projekts zur Verwendung Ihrer Daten
- Verwenden von Datei- und Ordnerressourcen
- Lokale Einrichtung für RPA-Workflow- und App-Projekte
- App-Projekte
- Apps in Studio Web
- Entwerfen von App-Projekten
- Debuggen von App-Projekten
- Veröffentlichen, Bereitstellen und Aktualisieren von App-Projekten
- Importieren und Exportieren von App-Projekten
- Arbeiten mit Entitäten in einem App-Projekt
- Erstellen zugänglicher Apps
- Hinzufügen zugänglicher Deskriptoren
- Die Beschriftung „Zugänglich“.
- Verwenden des Registerkartensteuerelements für Barrierefreiheit
- Entwerfen barrierefreier Listen und Überschriften
- reaktionsfähiges App-Design
- Farbkontrastverhältnis
- Legen Sie Stile und Zuordnungen auf Aria-Ebene für das Header-Steuerelement vor
- Bekannte Einschränkungen
- Initializing a coded app project
- Working in your IDE
- Bindings and runtime resources
- Publishing and deploying coded app projects
- Legen Sie einen externen Kontext mithilfe von Abfrageparametern fest
- Legen Sie einen externen Kontext mithilfe externer Ereignisse fest
- Verwenden Sie Arrays, um Dropdown-Menüs, Dropdown-Menüs mit Mehrfachauswahl und Optionsfeld-Steuerelemente auszufüllen
- Verwenden Sie tabellarische Steuerelemente mit Data Service-Entitäten in App-Projekten
- Integrieren Sie Konversations-Agents
- App-Aktivitäten
- Agent-Prozesse
- Maestro-Fall
- Maestro-Flow
- Agents
- Solutions (Lösungen)
- API-Workflows
- Tests
Bindings in coded apps, covering how UiPath resources are declared in bindings_v2.json and registered by Studio Web on push.
A coded app is rarely self-contained — it typically calls out to Orchestrator resources such as assets, storage buckets, queues, connections, or other automation projects. Studio Web uses a bindings_v2.json file, shipped with your app's source, to declare, resolve, and override those references at deploy time.
What bindings are
A binding is a logical reference from your coded app to a UiPath resource. It has two parts:
- A declaration inside
bindings_v2.json, at the root of what you push. Each entry names a resource, its type, and a default value. - A concrete resolution to an Orchestrator entity — folder, asset, bucket, queue, connection, or process — decided at deploy time by the solution's environment configuration.
Because the declarations in bindings_v2.json are stable, the same coded app can be deployed to development, staging, and production without code changes.
Declaring bindings in bindings_v2.json
A bindings_v2.json file at the root of what you push declares the bindings. It follows a versioned schema with a top-level resources array; each entry describes one binding.
Beispiel:
{
"version": "2.0",
"resources": [
{
"activityDisplayName": "Get Asset",
"activityId": "GetRobotAsset_1",
"resource": "asset",
"key": "Asset",
"id": "assetAssetAssetFalse",
"value": {
"name": {
"defaultValue": "Asset",
"isExpression": false
}
},
"metadata": {
"BindingsVersion": "2.2"
}
},
{
"activityDisplayName": "Invoke Process",
"activityId": "InvokeProcess_1",
"resource": "process",
"key": "Arghya-Queue-Query",
"id": "processArghya-Queue-QueryArghya-Queue-QueryFalse",
"value": {
"name": {
"defaultValue": "Arghya-Queue-Query",
"isExpression": false,
"displayName": "Process name"
}
},
"metadata": {
"BindingsVersion": "2.2"
}
},
{
"activityDisplayName": "Add Queue Item",
"activityId": "AddQueueItem_1",
"resource": "queue",
"key": "Arghya_query_queue",
"id": "queueArghya_query_queueArghya_query_queueFalse",
"value": {
"name": {
"defaultValue": "Arghya_query_queue",
"isExpression": false
}
},
"metadata": {
"BindingsVersion": "2.2"
}
}
]
}
{
"version": "2.0",
"resources": [
{
"activityDisplayName": "Get Asset",
"activityId": "GetRobotAsset_1",
"resource": "asset",
"key": "Asset",
"id": "assetAssetAssetFalse",
"value": {
"name": {
"defaultValue": "Asset",
"isExpression": false
}
},
"metadata": {
"BindingsVersion": "2.2"
}
},
{
"activityDisplayName": "Invoke Process",
"activityId": "InvokeProcess_1",
"resource": "process",
"key": "Arghya-Queue-Query",
"id": "processArghya-Queue-QueryArghya-Queue-QueryFalse",
"value": {
"name": {
"defaultValue": "Arghya-Queue-Query",
"isExpression": false,
"displayName": "Process name"
}
},
"metadata": {
"BindingsVersion": "2.2"
}
},
{
"activityDisplayName": "Add Queue Item",
"activityId": "AddQueueItem_1",
"resource": "queue",
"key": "Arghya_query_queue",
"id": "queueArghya_query_queueArghya_query_queueFalse",
"value": {
"name": {
"defaultValue": "Arghya_query_queue",
"isExpression": false
}
},
"metadata": {
"BindingsVersion": "2.2"
}
}
]
}
Fields per resource
| Feld | Zweck |
|---|---|
activityDisplayName | Human-readable label shown in Studio Web's Resources panel. |
activityId | Stable identifier the SDK uses to look up the binding at runtime. |
resource | Resource type: asset, bucket, queue, connection, process, and so on. |
key | The resource's key or logical name inside the app. |
id | A composed identifier used by Studio Web to persist and diff bindings across pushes. |
value.name.defaultValue | The default Orchestrator entity name to resolve to before environment overrides are applied. |
value.name.isExpression | true if defaultValue is an expression to be evaluated, false for a literal. |
metadata.BindingsVersion | Per-resource schema version. |
Registering bindings on push
Every uip codedapp push re-reads bindings_v2.json. Studio Web loads the file from the pushed content and registers each entry from the resources array under the project's Resources panel. Existing bindings whose id is unchanged retain their environment mappings; new entries appear unmapped until you map them.
If bindings_v2.json is absent from what you push, the project has no bindings and the Resources panel is empty.
Once the push completes, the project view in Studio Web confirms the sync and lists each registered resource type:
Mapping bindings to Orchestrator resources
For each registered binding, you (or the solution's environment configuration) select a matching Orchestrator resource — for example, mapping a Get Asset binding to a specific credential asset in a chosen folder.
The mapping is stored as part of the solution's environment configuration, not inside the pushed source. This is how a single coded app package is safely promoted across development, staging, and production — each environment provides its own resolutions.
For managing environments, see About solutions.
Best Practices
- An
activityDisplayNameshould be intent-revealing (Get Payment API Key, notGet Asset) — it appears in the Resources panel and in every environment mapping. - An
activityIdshould stay stable across pushes. Studio Web relies on it (combined withid) to diff and retain environment mappings between pushes. - A minimal
bindings_v2.jsonis easier to maintain: every entry becomes a resolution requirement in every environment the app is deployed to. bindings_v2.jsonis source code and should live in Git alongside the rest of the app.