Complete Sample Code (STATE) - Teradata Ecosystem Manager

Teradata® Ecosystem Manager API Reference

Product
Teradata Ecosystem Manager
Release Number
16.20
Published
December 2020
Language
English (United States)
Last Update
2020-12-23
dita:mapPath
loa1512743917841.ditamap
dita:ditavalPath
ft:empty
dita:id
B035-3204
Product Category
Analytical Ecosystem
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <tmsmapi.h>
#include <locale.h>
//State events do not take UofW
int main (int argc, char** argv)
{
	TM_Context* pCtx = NULL;
	MSM_WEvent* pSendStateEvent = NULL;
	wchar_t *szUowId = L"sampleUofWId";
	wchar_t *szUowClass = L"sampleUnitOfWorkClass";
	wchar_t *szTDPID = L"sampleTDPID";
	wchar_t *szJobStep = L"Logon";
	wchar_t *szResourceId = TMSM_WRESOURCETYPE_FLOAD;
	int status = 0;
	wchar_t *szMessage = L"Alert message";
#ifndef _WIN32
        setlocale(LC_ALL, "");
#endif /* _WIN32 */
	//Initialize Api.
	// Do not forget to call TM_Free(pCtx) at the end.
	pCtx = TM_Init();
	fwprintf(stderr, L"Initializing TMSM API.\n");
	if (pCtx != NULL)
	{			
			fwprintf(stderr, L"Creating Event.\n");
			// State events do not take UofW
			// Do not forget to call MSM_FreeWEvent(pCtx,pRequestStateEvent) at the
			// end
			pSendStateEvent = MSM_CreateWEvent(pCtx,NULL);
			if (pSendStateEvent != NULL)
			{
					//Simple Step
					fwprintf(stderr, L"Sending State Event.\n");
					//set resource-id
					pSendStateEvent->szResourceId=TMSM_WRESOURCETYPE_FLOAD;		
					//set event type
					pSendStateEvent->eventType=STATEEVENT;
					//set TDPID
					pSendStateEvent->szTDPID=szTDPID;
					//set state code
					pSendStateEvent->iStateCode=10;
					// Add multi-argument resourceType
			MSM_AddWResourceType(pCtx,pSendStateEvent,TMSM_WRESOURCETYPE_FLOAD);
					status=MSM_SendWEvent(pCtx,pSendStateEvent);//send event
					// Non-zero status is error
					fwprintf(stderr, L"SendEvent status %d .\n",status);
					// Free and clear event members for reuse
					MSM_FreeAndClearWEventMembers(pCtx,pSendStateEvent);
					//Update from environment - export variables
					fwprintf(stderr, L"Sending State Event.\n");
					pSendStateEvent->szResourceId=TMSM_WRESOURCETYPE_FLOAD;
					pSendStateEvent->eventType=STATEEVENT;
					pSendStateEvent->szTDPID=szTDPID;
					pSendStateEvent->iStateCode=10;
					// Add multi-argument resourceType
			MSM_AddWResourceType(pCtx,pSendStateEvent,TMSM_WRESOURCETYPE_FLOAD);
					// Update Event from environment - export variables
					status=MSM_UpdateWEventFromEnvironment(pCtx,pSendStateEvent);
					fwprintf(stderr, L"update event status from env %d .\n",status);
					// send event
					status=MSM_SendWEvent(pCtx,pSendStateEvent);
					// Non-zero status is error
					fwprintf(stderr, L"SendEvent status %d .\n",status);	
					// Free event members
					MSM_FreeWEventMembers(pCtx,pSendStateEvent);
					fwprintf(stderr, L"Freeing Event.\n");
					//Free event
					MSM_FreeWEvent(pCtx,pSendStateEvent);
			}
			else
			{
				fwprintf(stderr, L"failed to create the event");
			}
			fwprintf(stderr, L"Freeing Context.\n");
			//Free Context
			TM_Free(pCtx);
	}
	else
	{
		fwprintf(stderr, L"failed to create the context\n");
	}