unit BusinessProcessorClientData; interface uses {vcl:} SysUtils, Classes, DB, DBClient, Variants, {RemObjects:} uROClient, uROClientIntf, uRORemoteService, uROBinMessage, uROWinInetHTTPChannel, {Data Abstract:} uDADataTable, uDABINAdapter, uDAInterfaces, uDADataStreamer, uDARemoteDataAdapter, uDAScriptingProvider, uDACDSDataTable, uDADelta; type TBusinessProcessorClientDataModule = class(TDataModule) Message: TROBinMessage; Channel: TROWinInetHTTPChannel; RemoteService: TRORemoteService; DataStreamer: TDABinDataStreamer; RemoteDataAdapter: TDARemoteDataAdapter; tbl_Customers: TDACDSDataTable; ds_Customers: TDADataSource; tbl_Orders: TDACDSDataTable; ds_Orders: TDADataSource; procedure RemoteDataAdapterGenerateRecordMessage(Sender: TObject; aChange: TDADeltaChange; ADatatable: TDADataTable; var aMessage: string); procedure RemoteDataAdapterShowReconcileRecordInAppUI(Sender: TObject; aChange: TDADeltaChange; aDatatable: TDADataTable; var aHandled: Boolean; var aAction: TDAReconcileDialogAction); private { Private declarations } public { Public declarations } end; var BusinessProcessorClientDataModule: TBusinessProcessorClientDataModule; implementation uses BusinessProcessorClientUnit1; {$R *.dfm} procedure TBusinessProcessorClientDataModule.RemoteDataAdapterGenerateRecordMessage( Sender: TObject; aChange: TDADeltaChange; ADatatable: TDADataTable; var aMessage: string); var i: integer; begin aMessage := 'A problem occured while '; case achange.ChangeType of ctInsert: aMessage := aMessage + 'inserting'; ctUpdate: aMessage := aMessage + 'updating'; ctDelete: aMessage := aMessage + 'deleting'; end; aMessage := aMessage + ' a record in table "' + ADatatable.LogicalName + '"'; if ADatatable = tbl_Customers then begin aMessage := aMessage + ' , CustomerID = '''; if aChange.ChangeType = ctInsert then aMessage := aMessage + VarToStr(aChange.NewValueByName['CustomerID']) + '''' else aMessage := aMessage + VarToStr(aChange.OldValueByName['CustomerID']) + ''''; end else begin aMessage := aMessage + ' , OrderID = '''; if aChange.ChangeType = ctInsert then aMessage := aMessage + VarToStr(aChange.NewValueByName['OrderID']) + '''' else aMessage := aMessage + VarToStr(aChange.OldValueByName['OrderID']) + ''''; end; i := pos(sLineBreak, aChange.Message); if i = 0 then aMessage := aMessage + sLineBreak + sLineBreak + aChange.Message else aMessage := aMessage + sLineBreak + sLineBreak + copy(aChange.Message, 1, i - 1); end; procedure TBusinessProcessorClientDataModule.RemoteDataAdapterShowReconcileRecordInAppUI( Sender: TObject; aChange: TDADeltaChange; aDatatable: TDADataTable; var aHandled: Boolean; var aAction: TDAReconcileDialogAction); begin BusinessProcessorClientUnit1.ReconcileDialogShowDetails(aChange, ADatatable, AAction); AHandled := True; end; end.