<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.bishopphillips.com/riskwiki/index.php?action=history&amp;feed=atom&amp;title=BpcSMScriptLibrary_8</id>
	<title>BpcSMScriptLibrary 8 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.bishopphillips.com/riskwiki/index.php?action=history&amp;feed=atom&amp;title=BpcSMScriptLibrary_8"/>
	<link rel="alternate" type="text/html" href="https://www.bishopphillips.com/riskwiki/index.php?title=BpcSMScriptLibrary_8&amp;action=history"/>
	<updated>2026-11-15T00:44:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://www.bishopphillips.com/riskwiki/index.php?title=BpcSMScriptLibrary_8&amp;diff=179&amp;oldid=prev</id>
		<title>Bishopj: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://www.bishopphillips.com/riskwiki/index.php?title=BpcSMScriptLibrary_8&amp;diff=179&amp;oldid=prev"/>
		<updated>2026-04-12T06:37:07Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 06:37, 12 April 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Bishopj</name></author>
	</entry>
	<entry>
		<id>https://www.bishopphillips.com/riskwiki/index.php?title=BpcSMScriptLibrary_8&amp;diff=178&amp;oldid=prev</id>
		<title>Bishopj: Created page with &quot;==bpcXML Data Transfer Utility Routines==  Language: Delphi 7 - 2007   &lt;pre&gt; ////////////////////////////////////////////////////////////////////////////////////////// ///////...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.bishopphillips.com/riskwiki/index.php?title=BpcSMScriptLibrary_8&amp;diff=178&amp;oldid=prev"/>
		<updated>2019-09-11T16:45:08Z</updated>

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