96 lines
2.4 KiB
Markdown
96 lines
2.4 KiB
Markdown
---
|
|
type: step
|
|
category: event
|
|
name: VMH Beteiligte Sync
|
|
version: 2.0.0
|
|
status: active
|
|
tags: [sync, vmh, beteiligte, event, production]
|
|
dependencies: [redis, espocrm, advoware]
|
|
emits: []
|
|
subscribes: [vmh.beteiligte.create, vmh.beteiligte.update, vmh.beteiligte.delete, vmh.beteiligte.sync_check]
|
|
---
|
|
|
|
# VMH Beteiligte Sync Event Step
|
|
|
|
> **⚠️ Diese Datei ist veraltet.**
|
|
> **Aktuelle Dokumentation**: [../../docs/SYNC_OVERVIEW.md](../../docs/SYNC_OVERVIEW.md)
|
|
|
|
## Status
|
|
✅ **PRODUCTION** - Vollständig implementiert und in Betrieb
|
|
|
|
## Zweck
|
|
Verarbeitet Create/Update/Delete-Events für Beteiligte-Entitäten und synchronisiert zwischen EspoCRM und Zielsystem.
|
|
|
|
## Config
|
|
```python
|
|
{
|
|
'type': 'event',
|
|
'name': 'VMH Beteiligte Sync',
|
|
'subscribes': [
|
|
'vmh.beteiligte.create',
|
|
'vmh.beteiligte.update',
|
|
'vmh.beteiligte.delete'
|
|
],
|
|
'emits': [],
|
|
'flows': ['vmh']
|
|
}
|
|
```
|
|
|
|
## Geplantes Verhalten
|
|
|
|
**Input Events**:
|
|
```json
|
|
{
|
|
"topic": "vmh.beteiligte.create",
|
|
"data": {
|
|
"entity_id": "123",
|
|
"action": "create",
|
|
"source": "webhook",
|
|
"timestamp": "..."
|
|
}
|
|
}
|
|
```
|
|
|
|
**Processing**:
|
|
1. Fetch full entity data from EspoCRM
|
|
2. Map to target system format
|
|
3. Create/Update/Delete in target system
|
|
4. Remove ID from Redis pending set
|
|
5. Log success/failure
|
|
|
|
## Implementierungs-Aufgaben
|
|
|
|
- [ ] EspoCRM API Client erstellen
|
|
- [ ] Entity-Mapping definieren
|
|
- [ ] Zielsystem-Integration
|
|
- [ ] Error-Handling & Retry-Logic
|
|
- [ ] Redis Cleanup (remove from pending sets)
|
|
- [ ] Logging & Monitoring
|
|
|
|
## Redis Cleanup
|
|
Nach erfolgreicher Verarbeitung:
|
|
```python
|
|
redis.srem('vmh:beteiligte:create_pending', entity_id)
|
|
redis.srem('vmh:beteiligte:update_pending', entity_id)
|
|
redis.srem('vmh:beteiligte:delete_pending', entity_id)
|
|
```
|
|
|
|
## Testing (Future)
|
|
```bash
|
|
# Manually emit event for testing
|
|
# (via Motia CLI or test script)
|
|
```
|
|
|
|
## KI Guidance
|
|
Wenn Sie diesen Step implementieren:
|
|
1. Erstellen Sie EspoCRM API Client in `services/`
|
|
2. Definieren Sie Mapping-Logic
|
|
3. Implementieren Sie Retry-Logic mit exponential backoff
|
|
4. Cleanen Sie Redis Sets nach Verarbeitung
|
|
5. Loggen Sie alle Operationen für Audit
|
|
|
|
## Related
|
|
- [webhook/beteiligte_create_api_step.md](webhook/beteiligte_create_api_step.md) - Emits create events
|
|
- [webhook/beteiligte_update_api_step.md](webhook/beteiligte_update_api_step.md) - Emits update events
|
|
- [webhook/beteiligte_delete_api_step.md](webhook/beteiligte_delete_api_step.md) - Emits delete events
|