LPT üzerinde operations bölümünü kullanarak alert operation ekleyebilir,  j-Platform’ da zamanlanmış işlemler için alarm tanımları yapabilirsiniz.

 Bunun için işlem adımları;


1 -  Projemiz içerisinde ki Definitions klasörü altında operations.lod dosyasına çift tıklarız.

2 -  Açılan ekranda mouse > sağ klik > Add Alert Operation’a tıklarız

 

3 -  Açılan ekrandan gerekli tanımlamaları yaparız;

Code: Tanımlanan operasyonun kodu benzersiz olması gerekir

Name: Adı

Definition: Açıklama

Performer: Class ismini ve oluşturulacağı klasör konumu tanımlanır.

Server Side: Server Side çalışmasını sağlar.


4 - Oluşturulan sınıf içerisinde yapmak istediğimiz işlemleri yaparız. Örnekte bulunan sınıf içerisinde Öğrenci projesindeki CustomService sınıfında bulunan echoMsg metodu tetiklenir.

Sınıf içerisindeki sağda ki kod satırlarının geri dönüş olarak tanımlamamız gerekir

TaskManagerConstants.EXEC_STATUS_SUCCESS_COMPLETE, (İşlem çalıştırılıp tamamlandığında)

TaskManagerConstants.EXEC_STATUS_CANCEL (İşlem başarısız olduğunda)

TaskManagerConstants.EXEC_STATUS_SUCCESS_NOTCOMPLETE(işlem çalıştırılıp, bitirilmediğinde)

    /**
     * AlertClass : This class shows how to present an alert as part of an operation.
     */
    private static final long serialVersionUID = 1L;
    
    public int perform(IOperationContext context, ITaskOperationInstance arg1)throws TaskManagerException {
        try
        {
            /**
             * A remote method :  is a static method of a model, exposed over a custom REST endpoint.
             * Client Context : the ClientContext class to return context information about such objects 
             * as the current web application, site, site collection, or server version.
             * 
             */
            
            RemoteMethodResponse response = null;// if the response from the remote method is null
            IClientContext clientContext = context.getClientContext();// Initializes a new instance of the ClientContext object for the specified SharePoint site.
            TaskClientContext serverClientContext = null;
            ServerClientContext serverClientContext2 = null;
            if (clientContext instanceof TaskClientContext)
            {
                serverClientContext = (TaskClientContext) clientContext;
                clientContext = serverClientContext.getInnerClientContext();
                IServerContext serverContext2 = null;
                if (clientContext instanceof ServerClientContext) {
                    serverClientContext2 = (ServerClientContext) clientContext;
                    serverContext2 = serverClientContext2.getServerContext();
                }
                /**
                 * The Object constructor creates an object wrapper for the given value.
                 *  If the value is null or undefined, it will create and return an empty object, otherwise, it will
                 *  return an object of a Type that corresponds to the given value. 
                 *  If the value is an object already, it will return the value.
                 */
                Object[] inParam = new Object[] { null };
                /**
                 * CAlling the RemoteMethod 
                 * */
                response = serverContext2.callRemoteMethod("CSRV", "echoMsg",
                        inParam);
                Object res = response.Result;
                String msg = (String) res;
                System.out.println("Başarıyla tetiklendi: " + msg);
            }
              
            if (response != null)
            {
                Object[] results = (Object[]) response.Result;
                if ((results != null) && (results.length > 0) && (results[0] instanceof Boolean)
                        && (((Boolean) (results[0])).booleanValue()))
                {
                    return TaskManagerConstants.EXEC_STATUS_SUCCESS_COMPLETE;
                }
                else
                {
                    return TaskManagerConstants.EXEC_STATUS_SUCCESS_NOT_COMPLETE;
                }
            }
            else
            {
                return TaskManagerConstants.EXEC_STATUS_SUCCESS_NOT_COMPLETE;
            }
        }
        catch (Exception e)
        {
            return TaskManagerConstants.EXEC_STATUS_SUCCESS_NOT_COMPLETE;
        }
    }

5 -  Tanımlama işlemini tamamladıktan sonra projemizi deploy ederiz sonrasında j-Platform üzerinden Süreç Yönetimi>Tanımlar>Görev Tanımları>Zamanlanmış Görevler açarız.

6 -

  • Açılan ekrandan Görev Tanımı tabından görev adı alanında LPT içerisinde tanımladığımız operasyon tanımımızı belirterek görev seçeriz.
  • Görevli alanından personel seçeriz.

 


7 - Zamanlama tabına geçerek çalıştırmak istediğimiz operasyonun çalışma aralıklarını belirterek işlemimizi tamamlarız.

 



Telif HakkıKullanım KoşullarıGizlilik
Copyright © 2018 Logo Yazılım