Several of our customers have asked us recently how to run Advanced ETL Processor or Visual Importer ETL Package from Active Table Editor or any other application.

All of theese customers use agent for execution.

Agent reads QUEUE table several times per minute if there is something to execute it runs it.

QUEUE table has a lot of fields and it is not very clear which values to use.

Here is basis SQL Server stored procedure:

CREATE PROCEDURE [dbo].[EXECUTE_OBJECT]
(
@LogDirectory NVARCHAR(255) ='',
@ComputerToExecuteOn NVARCHAR(255) ='',
@ObjectID Int,

@UseAgent Int = 1, -- 1 = True, 0 = False
@ExecuteOnComputer Int = 1
)
AS BEGIN BEGIN TRAN
-- Calculating ID
DECLARE @ID Int
select @ID =max(ID)+1 from ID_GENERATOR where id_type=2
update ID_GENERATOR set ID=@ID where id_type=2
INSERT INTO QUEUE
(QUEUE_ID,
OBJECT_ID,
OBJECT_TYPE,
OBJECT_NAME,
LOG_FILE,
SUBMITED,
STATUS,
USE_AGENT,
EXECUTE_ON_COMPUTER,
COMPUTER_TO_EXECUTE_ON,
COMPUTER_NAME,
OSUSER )
SELECT @ID as QUEUE_ID,
OBJECT_ID, OBJECT_TYPE,
NAME as OBJECT_NAME,
@LogDirectory+'\Package_'+Cast(@ID as VARCHAR)+'.log' as LOG_FILE,
getdate() as SUBMITED, 'P' as STATUS,
@UseAgent as USE_AGENT,
@ExecuteOnComputer as EXECUTE_ON_COMPUTER,
@ComputerToExecuteOn as COMPUTER_TO_EXECUTE_ON,
@@SERVERNAME as COMPUTER_NAME,
user as OSUSER
from objects_tree
where object_id=@ObjectID
COMMIT
END
GO

Execution example:

EXEC [EXECUTE_OBJECT] 'C:\TEMP','DBSLCOMPUTER',126,1,0

Parameters:

Log Directory:

Log Directory

Object ID:

The rest of parameters is self explanatory

Active Table Editor Execute Button

We have 112 guests and one member online