Fähigkeiten-Katalog

Katalog aller Fähigkeiten der dsyr.DataBridge mit ihrer technischen Umsetzung.

Integration und Datenfluss

FähigkeitUmsetzung
Change Detection (Pull)GetChanges → ProcessJobsForRetrievalInOrderService; je Connector RetrieveChangesAsync (BC/NAV $filter, CE RetrieveEntityChangesRequest, SQL seitenweises SELECT, OpenAPI Query-String)
Orchestrierter AbrufDurable: GetChangesOrchestrator, GetChangesActivity, Entity JobState
Asynchrone EntkopplungService Bus mit sieben Queues, ServiceBusService mit Batch bis 200
Priorisierte VerarbeitungJobPriorityType → Queue; drei Trigger
ReihenfolgensteuerungJob.Order
Idempotentes SchreibenConnector.Upsert/Delete; TargetKey/TargetKeys mit KeyRank, erster Treffer gewinnt
Aktions-JobsInvokeAction: Job-Action ohne CRUD-Bedeutung ruft einen benannten Endpunkt
Job-eigene PfadeSource/Target am Job überschreiben SourceTable/TargetTable des Mappings
Eingebettete KinderEmbedChildren (nur CE als Quelle)
Response-JobsUpsert(..., responseMapping, job) → Response-Nachricht
WatermarkingWatermarkService + WatermarkValue; Typen date, datetime, string

Konnektivität

FähigkeitUmsetzung
D365 Business CentralBcConnector : HttpConnectorBase, OAuth2 / Basic / Managed Identity
D365 CE / DataverseCeConnector : ConnectorBase, ServiceClient (Connection-String oder url + Managed Identity)
D365 NAVNavConnector : HttpConnectorBase
REST über OpenAPIOpenApiConnector : HttpConnectorBase, Spec aus openApiSpecUrl
MSSQL, PostgreSQL, MySQL, OracleSqlConnectorBase<T>, nur lesend
Auth-Varianten HTTPBasic, OAuth2 Client Credentials mit tokenUrl, API-Key, Managed Identity (explizit über authmethod)
Key-Vault-BezugkeyVaultUrl in der Connection + DefaultAzureCredential
Schema-MetadatenIConnector.GetTableNames, GetTableMetadata für alle Connector-Typen
Ad-hoc-HTTPExecuteHttpRequest (nur GET)

Transformation und Mapping

FähigkeitUmsetzung
Feld-MappingTableMapping + FieldMapping aus mappings
Typ-CoercionAttributeResolver-Familien je Systemtyp
Metadaten-basierte Resolver-WahlTargetValueMapper je Connector, statische FrozenDictionary-Registry mit Coverage-Tests
Default-WerteTarget-Operationen DefaultValue, DefaultValueIfNullOrEmpty, DefaultValueMap
Option-/Picklist-MappingOptionMapping, CE-Resolver für Picklist, MultiSelect, State/Status
Lookup-AuflösungSource-Operation LookupValue mit Cache; CE mit Batch-Pre-Caching; DoNotCreate
CE-BeziehungenActivityParty, LinkToRecord
ReadFromMessageWert aus der Nachricht übernehmen
Virtuelle Felder_-Präfix im SourceField, nie gegen Metadaten validiert
ErweiterbarkeitSource-Operation-Handler per Reflection

Konfiguration und Steuerung

FähigkeitUmsetzung
Konfigurationsgetriebener BetriebTable Storage, StorageService, SettingsService
Cron je JobJob.Schedule, NCrontab.Signed, sechs Felder
Manueller Job-StartExecuteJob
Function-TogglesAzureWebJobs.<Name>.Disabled, Bicep disabledFunctions
Konfig-DiagnoseCheckList, Validate, JobApi, MappingApi
KI-AnbindungMCP-Server mit read-only Tools
Self-Repair der InitialisierungResetInitialization bei Fehlern
Quell-FilterJob.Filter mit {{…}}-Templating
Veraltete Nachrichten überspringenSkipOutdatedMessages → sbqignored

Resilienz

FähigkeitUmsetzung
Backoff-RetryDeliveryCount² · 1000 ms
Lock-RenewalHintergrund-Task alle 30 s
Konflikt-IsolationTransitiveException → sbqtransitive*
Dead-LetteringmaxDeliveryCount, Fehler-Properties an der Nachricht
RequeueDeadLetterMover
KommunikationsfehlerGetChanges fängt EndpointNotFoundException, CommunicationException

Observability

FähigkeitUmsetzung
Gepuffertes LoggingBufferingLoggerProvider, Flush pro Invocation
Dependency-SamplingDependencySamplingProcessor
Custom MetricsMetricsService (ChangesDetected, MessagesProcessed)
KorrelationInvocationContext, operation_id
SteuerungTELEMETRY_CONTROL, drei Raten-Settings
AlertsDLQ-Stufen, Queue-Länge, Action Group
DashboardGrafana-Dashboard aus Bicep
VersionGetInfo

Infrastruktur und Auslieferung

FähigkeitUmsetzung
Infrastructure as CodeBicep mit Modulen und .bicepparam
MarketplacecreateUiDefinition.json, generierte mainTemplate.json
Identitätsbasierter ZugriffenableManagedIdentity + Rollen
Serverless-SkalierungY1 / EP1–EP3, functionScaleLimit
Run-from-PackageWEBSITE_RUN_FROM_PACKAGE=1
ContainerDockerfile, compose.yml
VersionierungMajor.Minor.yyyy.MMdd, manueller Bump
CI/CDAzure Pipelines unter cicd/
Lokale EntwicklungPodman-Testumgebung mit DBs und HTTP-Mocks

Qualitätssicherung

FähigkeitUmsetzung
Unit-TestsDataBridge.Test, xUnit v3, Moq
CoverageMicrosoft Testing Platform Code Coverage
Resolver-Vollständigkeit*TargetValueMapperCoverageTests
DokumentationHugo/Docsy unter docs/, veröffentlicht per Pipeline