BpcSMScriptLibrary 8
bpcXML Data Transfer Utility Routines
Language: Delphi 7 - 2007
//////////////////////////////////////////////////////////////////////////////////////////
//////// bpcXML Data Transfer Utility Routines. Uses TbpcPublicationManager object.
//////////////////////////////////////////////////////////////////////////////////////////
interface
uses windows, SysUtils, Classes, JvComponent, JvDirectories, Types, DB, ADODB, Psock, NMsmtp, DBGrids, HTTPApp, HTTPProd,
NMHttp, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, {JvBaseDlg,} IdAuthentication, bpcDBBookMarkList,
LMDCustomComponent, lmdcont, bpcSMScriptLibrary_7;
type
TbpcsmDSMapperfunc= function( const sDataSetName: string): string of object;
TbpcSMConfirmOk = Function( var myResult : variant ) : integer of object;
TbpcSMSTPMode=(bpcSMUpdate,bpcSMReplace,bpcSMDelete);
TbpcHTTPSuccess = procedure (Cmd: CmdType) of object;
TbpcValidfunc = function (sOID, sPID: string): string;
TbpcGetPSTTableMasterIndex = function ( Sender: TDataSet ) : string;
{
TGovDupFlags = ( csmHeader, csmQuestionsByRef, csmQuestionsByAct, csmScripts, csmInstances );
TGovDupFlagsSet = set of TGovDupFlags;
TGovMaintHTTPSuccess = procedure (Cmd: CmdType) of object;
TGovMaintUpdateStatusBar = procedure of object;
TGovMaintConfirmOk = Function( var myResult : variant ) : integer of object;
TGovMaintWSLoginDlg = Function( var Username : string; var PassWord : string ) : boolean of object;
TGovMaintInfoErrorAdvice = procedure( myAdvice : string ) of object;
}
TbpcPublicationManager = class(TObject)
private
funUplinkFail: TbpcHTTPSuccess;
funUplinkComplete: TbpcHTTPSuccess;
Activated : boolean;
funGetTargetDLLModuleName: TSimpleStringFunc;
function DummyValidateSMAccess(sOID, sPID: string): string;
public
Owner : TDataModule;
ADOConnection1: TADOConnection;
funDataSetMapperFunc, funOutGoingDataSetMapperFunc : TbpcsmDSMapperfunc;
funValidateAccess : TbpcValidfunc;
funGetTableMasterIndex : TbpcGetPSTTableMasterIndex;
funGetOrgID, funGetPID : TSimpleStringFunc;
ConfirmOkFunc : TbpcSMConfirmOk;
PreviewCommsPackets : boolean;
iniURLDefPublicationSite : string;
{TargetDLLModuleName,} TargetModuleExt, TargetModuleAction : string;
tsDataSetIndexes : TStrings;
IdHTTP1 : TIdHTTP;
XMLDocument1 : TXMLDocument;
constructor create(myOwner : TDataModule; myADOConnection: TADOConnection; myDataSetMapperFunc, myOutGoingDataSetMapperFunc : TbpcsmDSMapperfunc; myConfirmOkFunc : TbpcSMConfirmOk );
destructor destroy;
function GetActive : boolean;
procedure SetActive( value : boolean );
function DataSetMapperFunc( const sDataSetName : string ) : string ;
function OutGoingDataSetMapperFunc( const sDataSetName : string ) : string ;
// Send the current row or all rows of the sender dataset to the URL (or if URL is ommitted, the iniURLDefPublicationSite)
// Defaults the destination to ''.
// bpcBookMarks is an alternative to BookMarks (the latter requiring a grid, while the former does not). If both are set, BookMarks are used.
function SendToPubServer( indexby : string; singleonly:boolean; sendingDS : TDataSet; publishto : string; BookMarks : TBookmarklist=nil; bpcBookMarks : TbpcBookmarkList=nil ): string; overload;
// Send the current row or all rows of the sender dataset to the URL (or if URL is ommitted, the iniURLDefPublicationSite)
// bpcBookMarks is an alternative to BookMarks (the latter requiring a grid, while the former does not). If both are set, BookMarks are used.
// If Confirmer is assigned, the associated TSurvMaintConfirmOk routine will be called before the XML packet is dispatched.
function SendToPubServer( confirmer: TbpcSMConfirmOk ;destination, indexby : string; singleonly:boolean; sendastable:boolean; sendermode: TbpcSMSTPMode; DelFilter: string; sendingDS : TDataSet; publishto : string; BookMarks : TBookmarklist=nil; bpcBookMarks : TbpcBookmarkList=nil ) : string; overload;
// Send the current row or all rows of the sender dataset to the URL (or if URL is ommitted, the iniURLDefPublicationSite)
// bpcBookMarks is an alternative to BookMarks (the latter requiring a grid, while the former does not). If both are set, BookMarks are used.
function SendToPubServer( destination, indexby : string; singleonly:boolean; sendastable:boolean; sendermode: TbpcSMSTPMode; DelFilter: string; sendingDS : TDataSet; publishto : string; BookMarks : TBookmarklist=nil; bpcBookMarks : TbpcBookmarkList=nil ): string; overload;
function SendToPubServer( destination, indexby : string; singleonly:boolean; sendastable:boolean; sendingDS : TDataSet; publishto : string; BookMarks : TBookmarklist=nil; bpcBookMarks : TbpcBookmarkList=nil ) : string; overload;
// Send the all rows of the sending qry (named sourceQryName, or if '' named destination) to the URL (or if URL is ommitted, the iniURLDefPublicationSite)
function SendToPubServer( destination, indexby : string; singleonly:boolean; sendastable:boolean; sendermode: TbpcSMSTPMode; DelFilter: string; sourceQryName, sendingQry : string; publishto : string ) : string; overload;
// Send the all rows of the sending qry (named sourceQryName, or if '' named destination) to the URL (or if URL is ommitted, the iniURLDefPublicationSite)
// If Confirmer is assigned, the associated TGovMaintConfirmOk routine will be called before the XML packet is dispatched.
function SendToPubServer( confirmer: TbpcSMConfirmOk ;destination, indexby : string; singleonly:boolean; sendastable:boolean; sendermode: TbpcSMSTPMode; DelFilter: string; sourceQryName, sendingQry : string; publishto : string ) : string; overload;
// Send the all rows of the sending qry (named sourceQryName, or if '' named destination) to the URL (or if URL is ommitted, the iniURLDefPublicationSite)
// If Confirmer is assigned, the associated TGovMaintConfirmOk routine will be called before the XML packet is dispatched.
// Assumes the sendermode (not present in this version) is the Update (ie. NOT replace mode)
function SendToPubServer( confirmer: TbpcSMConfirmOk ;destination, indexby : string; singleonly:boolean; sendastable:boolean; sourceQryName, sendingQry : string; publishto : string ) : string; overload;
procedure GetFromPubServer(indexby, returnindexby : string; singleonly:boolean; sendingDS : TDataSet; publishto : string ; BookMarks : TBookmarklist=nil; bpcBookMarks : TbpcBookmarkList=nil);
procedure GetSimpleFromPubServer(indexby, returnindexby : string; singleonly:boolean; sendingDS : TDataSet; publishto : string; myParams : Variant );
// Return the index for the dataset (only some known datasets covered)
function GetTableMasterIndex( Sender: TDataSet ) : string;
// Send the current row or all rows of the sender dataset to the URL (or if URL is ommitted, the iniURLDefPublicationSite)
// The correct index will be found in the DataSetIndexes StringList and matched with the dataset prior to sending.
procedure IndexedSendToPubServer( SingleOnly: boolean; Sender: TDataSet; URL : string=''; BookMarks : TBookmarklist=nil; bpcBookMarks : TbpcBookmarkList=nil ); Overload;
// Get the current row or all rows of the sender dataset from the URL (or if URL is ommitted, the iniURLDefPublicationSite)
// The correct index will be found in the DataSetIndexes StringList and matched with the dataset prior to sending.
procedure IndexedGetFromPubServer( SingleOnly: boolean; Sender: TDataSet; URL : string=''; BookMarks : TBookmarklist=nil; bpcBookMarks : TbpcBookmarkList=nil); Overload;
// Send the current row or all rows of the sender dataset to the URL (or if URL is ommitted, the iniURLDefPublicationSite)
// The correct index will be found in the provided myTableIndexes StringList and matched with the dataset prior to sending.
procedure IndexedSendToPubServer(myTableIndexes : TStrings; SingleOnly: boolean; Sender: TDataSet; URL : string=''; BookMarks : TBookmarklist=nil; bpcBookMarks : TbpcBookmarkList=nil); Overload;
// Get the current row or all rows of the sender dataset from the URL (or if URL is ommitted, the iniURLDefPublicationSite)
// The correct index will be found in the provided myTableIndexes StringList and matched with the dataset prior to sending.
procedure IndexedGetFromPubServer(myTableIndexes : TStrings; SingleOnly: boolean; Sender: TDataSet; URL : string=''; BookMarks : TBookmarklist=nil; bpcBookMarks : TbpcBookmarkList=nil); Overload;
property OnGetOrgID : TSimpleStringFunc read funGetOrgID write funGetOrgID;
property OnGetPID : TSimpleStringFunc read funGetPID write funGetPID;
property Active : boolean read GetActive write SetActive;
property EnableCommsPreview : boolean read PreviewCommsPackets write PreviewCommsPackets;
property PublicationSite : string read iniURLDefPublicationSite write iniURLDefPublicationSite;
property OnGetTargetDLL : TSimpleStringFunc read funGetTargetDLLModuleName write funGetTargetDLLModuleName;
property TargetAction : string read TargetModuleAction write TargetModuleAction;
property TargetExt : string read TargetModuleExt write TargetModuleExt;
property IdHTTP : TIdHTTP read IdHTTP1 write IdHTTP1;
property DataSetIndexes : TStrings read tsDataSetIndexes write tsDataSetIndexes;
property OnValidateAccess : TbpcValidfunc read funValidateAccess write funValidateAccess;
property OnConfirmOkFunc : TbpcSMConfirmOk read ConfirmOkFunc write ConfirmOkFunc;
property OnGetTableMasterIndex : TbpcGetPSTTableMasterIndex read funGetTableMasterIndex write funGetTableMasterIndex;
property OnOutGoingDataSetMapper : TbpcsmDSMapperfunc read funOutGoingDataSetMapperFunc write funOutGoingDataSetMapperFunc;
property OnDataSetMapper : TbpcsmDSMapperfunc read funDataSetMapperFunc write funDataSetMapperFunc;
property OnUpLinkComplete : TbpcHTTPSuccess read funUplinkComplete write funUplinkComplete;
property OnUpLinkFail : TbpcHTTPSuccess read funUplinkFail write funUplinkFail;
end;