Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
I can't seem to be able to set the name on the new task, task gets created with default name.
Here's my code, any ideas are welcome.
Dim QMSClient As New QMSBackendClient()
Dim QvsId As Guid
'Gets the request Key when the page is loaded
ServiceKeyClientMessageInspector.ServiceKey = QMSClient.GetTimeLimitedServiceKey()
'Fetching the ID of the first QVS resource
Dim qvsServices As QVPublisher.QMSBackendService.ServiceInfo()
qvsServices = QMSClient.GetServices(ServiceTypes.QlikViewDistributionService)
QvsId = New Guid(qvsServices(0).ID.ToString())
Dim qvDocs As QVPublisher.QMSBackendService.DocumentNode()
qvDocs = QMSClient.GetSourceDocuments(QvsId)
Dim qvDocTasks As New QVPublisher.QMSBackendService.DocumentTask
qvDocTasks.QDSID = QvsId
qvDocTasks.Document = qvDocs(1)
qvDocTasks.DocumentInfo = New QVPublisher.QMSBackendService.DocumentTask.TaskDocumentInfo
qvDocTasks.Distribute = New QVPublisher.QMSBackendService.DocumentTask.TaskDistribute
qvDocTasks.Reduce = New QVPublisher.QMSBackendService.DocumentTask.TaskReduce
qvDocTasks.Reload = New QVPublisher.QMSBackendService.DocumentTask.TaskReload
qvDocTasks.General = New QVPublisher.QMSBackendService.DocumentTask.TaskGeneral
qvDocTasks.General.TaskName = "API TEST"
qvDocTasks.General.Enabled = False
qvDocTasks.Triggering = New QVPublisher.QMSBackendService.DocumentTask.TaskTriggering
QMSClient.SaveDocumentTask(qvDocTasks)
Hi,
I am using the api GetDocumentTask to get the list of triggers. I am using the following code -
documentTask = apiClient.GetDocumentTask(TaskID, DocumentTaskScope.All);
// Define the event trigger properties
TaskEventTrigger eventTrigger = new TaskEventTrigger();
eventTrigger.ID = Guid.NewGuid();
eventTrigger.Enabled = true;
eventTrigger.TaskID = taskID;
eventTrigger.Type = TaskTriggerType.TaskFinishedTrigger;
// Create trigger list and add event trigger
List<Trigger> listTrigger = new List<Trigger>();
listTrigger.Add(eventTrigger);
documentTask.Triggering = new DocumentTask.TaskTriggering();
documentTask.Triggering.Triggers.Add(eventTrigger);
documentTask.Triggering.TaskDependencies = new List<TaskInfo>();
documentTask.Triggering.ExecutionAttempts = 1;
documentTask.Triggering.ExecutionTimeout = 1440;
documentTask.Scope = DocumentTaskScope.Triggering;
// Create Trigger
apiClient.SaveDocumentTask(documentTask);
This code is giving error that the object reference not set to an instance of object at line - documentTask.Triggering.Triggers.Add(eventTrigger);
I have a requirement to ADD triggers to the task. My task already has some triggers so I want to append the trigger to the existing list from code. If I use the code -
documentTask.Triggering.Triggers = listTrigger;
This removes all the triggers which previously existed and just adds the eventTrigger.
Can you help me how we can do this ?
Thanks,
Samir
Hi,
The problem was I was instantiating a new object -
documentTask.Triggering = new DocumentTask.TaskTriggering();
I removed this code and added -
documentTask.Triggering.Triggers.Add(eventTrigger)
This is working as expected now.
Thanks,
Samir
Hi bas,
I have a similar case,create a task and a trigger for all the available qvw.I followed the above examples but i cant create trigger.I manage to create an empty line(with the edit and delete sign) but without attributes of the trigger(type,start time,etc).
Below is my code.
Any kind of help will be appreciate!
System;
System.Collections.Generic;
System.Linq;
System.Text;
QMSAPIStarter.QMSAPIService;
QMSAPIStarter.ServiceSupport;
QMSAPIStarter
class Program
static void Main(string[] args)
QMSClient Client;
string DocName = System.String.Empty;
string NewList = System.String.Empty;
int i = 0;
string QMS = "http://localhost:4799/QMS/Service";
new QMSClient("BasicHttpBinding_IQMS", QMS);
string key = Client.GetTimeLimitedServiceKey();
ServiceKeyClientMessageInspector.ServiceKey = key;
ServiceInfo[] myServices = Client.GetServices(ServiceTypes.All);
Guid qdsGuid = myServices[1].ID;
//QMSClient qmsClient =Client;
DocumentTask documentTask = new DocumentTask();
//Get source documents
DocumentNode[] sourceDocuments =Client.GetSourceDocuments (qdsGuid);
foreach ( DocumentNode Documents in sourceDocuments)
//}
//documentTask.Document = sourceDocuments[0]; //Get first source document for this example
//Console.WriteLine(sourceDocuments[0]);
new DocumentTask.TaskGeneral();
true;
//documentTask.General.DocumentInfo = DocName;
// documentTask.Reload.Enabled=true;
"Creating a task via QMS API";
new DocumentTask.TaskDocumentInfo();
"Parallel_Test";
"Task created using QMS API";
DocumentAttribute _da = new DocumentAttribute();
"a";
"a";
new DocumentAttribute[1];
Guid triggerID = new Guid("5b219800-ad7d-477e-83da-3357f84133ff");
DocumentTaskScope.General | DocumentTaskScope.DocumentInfo;// | DocumentTaskScope.Triggering;
//Create task
//triggerID = Guid.NewGuid();
ScheduleTrigger st = new ScheduleTrigger();
// triggerID;
TaskTriggerType.OnceTrigger;
true;
DateTime.Now;
// Create a list of trigger and add the scheduled trigger
//List<Trigger> List_Trigger = new List<Trigger>();
//List_Trigger.Add(st);
// Create a list of trigger and add the scheduled trigger
Trigger[] List_Trigger = new Trigger[1];
//List_Trigger[1] = st;
new DocumentTask.TaskTriggering();
//List_Trigger.ToList();
//retval = entityRegistry.Values.OfType<T>().ToList();
TaskInfo[] _TaskInfoList = new TaskInfo[1];
TaskInfo tf = new TaskInfo();
false;
//tf.QDSID = qdsGuid;
Guid.NewGuid();
TaskType.DocumentTask;
//taskdep.Add(tf);
DocumentTaskScope.General | DocumentTaskScope.Triggering;
Client.SaveDocumentTask(documentTask);
Thanks for this threat
Just to be sure:
TDE.Recipients = List_Dir;
This one is used for settings up the User Type and Recipients? Or just Recipients and i need to set User Type somewhere else?
Thanks for all the info!
I have created a task successfully and ran it but while distributing it is not replacing the existing file. Instead it has created a new file. for ex: filename_1.
Can you please help.
Hi srythideva,
Make sure your DocumentTask.scope object is completely set. For example:
docTask.Scope = DocumentTaskScope.General | DocumentTaskScope.Reload | DocumentTaskScope.DocumentInfo | DocumentTaskScope.Triggering | DocumentTaskScope.Distribute | DocumentTaskScope.Reduce | DocumentTaskScope.Server;
All of the properties need to be set as well. I think you are running into the issue with reducing. Looking into DocumenTaskScope.Reduce...
docTask.Reduce = new DocumentTask.TaskReduce();
docTask.Reduce.Static = new DocumentTask.TaskReduce.TaskReduceStatic();
List<TaskReduction> TaskReductionList = new List<TaskReduction>();
docTask.Reduce.Static.Reductions = TaskReductionList;
docTask.Reduce.Dynamic = new DocumentTask.TaskReduce.TaskReduceDynamic();
docTask.Reduce.Dynamic.Type = TaskReductionType.ByField;
docTask.Reduce.DocumentNameTemplate = "%SourceDocumentName%";
Hope this helps!