Thursday, 27 August 2026

Apriso

DELMIA APRISO

  • Apriso Desktop Client
  • Apriso Process Builder
  • Global Process manager
  • Archive
  • Apriso Configuration Manager

Certificates:

  • Apriso Brand Essentials Program
  • Apriso Foundation 
  • Apriso Process Builder 
  • Complex Assembly Production
  • Repetitive Production 
  • Quality 
  • Maintenance 
  • Warehouse Shipping
  • Time & Labor 

GPM Entity tables:
PB_Project
Operation
Operation_Header
Operation_Link


Standard Table
Role
Employee
EmployeRole
Group_
Product
Product_Group
Resource_
Resource_Labor
Equipment
Serial_No

Wip_order
Wip_order_Type
Wip_order_Status
Wip_Operation
Container
Container_Class
Inventory2
Warehouse
Warehouse_Location
Text
Text_Translation
Literal
Literal_Translation
Literal_Dictionary
Literal_Dictionary_Translation


Text_Translation
Unit
Unit_characteristic


Who Columns:
Createdon
Creatdby
Lastupdateon
Lastupdatedby
Active
Referenceid
Rowversionstamp
Lastdeleteon
LastDeletedby
LastArchiveon
LastArchivedby


APRISO Configuration Manager
a.   WebAddress : App101
b.   Database Configurations:
c.   Reporting Service
       Untitled
d.   Literal Provider
    
e.   Security     
    
  • Apriso Desktop client:
• Company
• Facility
• Department
• Warehouse
• Warehouse Location
• Warehouse Location Class
• Warehouse Location Relation
• Location Relationship Class
• Location Lookup
• Zone
• Work center
• Equipment Explorer
• Equipment Class
• Resource Explorer
• Container
• Container Class
• Container Lookup
• Reason Code
• Reason Class
• Reason Type
• Product Maintenance
• Employee Maintenance
• Group
• Group Class
• Work Instructions
• Work Instruction Class
• UOM Maintenance
• Role
• Skill
• Dictionary Links
• Dictionary Translation
• System Parameter & list
• Advanced Determination Designer
• Advanced Determination value Editor
• Flex Part Configuration
• Machine Integrator Configuration
• Machine Integrator Monitoring
• Disposition
• Disposition Content
• Disposition Line
• Disposition Reading
• Disposition Test
• Disposition Test Sample
• Approval Cockpit
• Dispatching Board
• Production Line
• Order
• Operation
• Order Line
• Order Status History
• Order Type
• Machine Time Cockpit
• Maintenance Cockpit
• Maintenance Order
• Maintenance Calendar
• Maintenance Template
• Time Manager Cockpit
• Weighing & Dispensing Cockpit

APRISO MES Folder Configurations
a.   Labels Definitions
C:\Program Files\Dassault Systemes\DELMIA Apriso 2019\Labels Definitions
.prn File
.Xml File
b.   Report Definitions(Standard Reports of Attendance, Producton, Labor, Quality, Warehouse)
.rpt File
.Xml File
c.   Services
MI Service
Maintenace Service
Job Scheduler & Executor Service
PB Service
GPM Service
d.   WebSite
CentralConfiguarion
Portal
WebService
MI(Machine Integrator)
Adv:
       Data Acquisition
       Alaram & Notifications
       Automatic Logging
       Simulations
OPC Server Communication:
Connector
DataSource
PointGroup
Point

GPM(Global Process Manager)
Types:
a.   Generate From Selection
b.   Generate Cumulative
c.   Generate Differential    
Create GPM:
       1.Goto GPM --> Console Tree --> Projects -->Create New Folder(LineAllocation)
       -->Right Click LineAllocation Folder --> New Projects --> Give Project Name(LineAllocation)--> ok

       2.Click LineAllocation Project --> then Click Add Item-->Select Screen -->select Scren
       Similarly(Layout, View, Operation and other dependies)

       3.then Finaly Generate Cumulative -->ok, Now GPM is Ready.
      
       4.Go to Package Repository-->Generated --> select Generated Package -->Save it


Package Actions:
       a. Executing
       b. Pending
       c. History
Deploy the GPM:
a.   Received
b.   Loaded
c.   Generated

      

Load GPM File
       Right Click --> Package Repository -->Righ Click-->load from file --> select file -->ok
       right click the package --> deploy

FlexPart Configuraion
       Url Generate for Page
URL Generate
PB-->Right click screen--> publish As FlexPart--> create and Save
ADC-->Administration-->SystemAdministration-->MenuMaintenance-->select Screen -->save

Process Builder:
Entity Manager :
It is contains List of Process, Operation, View, Layout, Screen

Entity Status :
1. Design In Progress 
a. The new entity created and can not be execute.
2. Development In Progress
a. While working on the development
3. Compiling In Progress
a. Temporary status occur between status change
4. On Hold 
a. Put on hold
5. Cancelled
a. If it defection or no longer user we can cancel it
6. Prototype 
a. Used for testing purpose
b. We can move back to design in Progress
7. Active  - cannot move back to design or development status
Project Manager
• Project :
○ File -> New -> Project (Name & Revision)
○ Open the Project from Project manager -> Right click project -> Add module
○ Add reference of another module
• Screen:
○ File -> New -> Screen (Name,  Revision, Project, Module)
○ Screen (Name,  Revision, Title, Description, Layout, On-initialize, On-Load)
• Layout:
○ Using Panel we can design  the screen
○ we can divide multiple panels
○ View are liked to panel.
○ Like header, Title, tabs, Filter, context, footer
• View:
○ Header - Header, Button on view
○ Form
Action and Forms
Button and control on view, Generic portal Form.
View Action Type:
□ Button (Primary)
□ Button (Secondary)
□ Calculated
Cannot be displayed
Routing can be added as a view and Operation action triggered based on business logic
□ Tab
□ Numeric - for mobile view
○ General
Button on a view and Business control
Tab, Grid, Tree, Visualization
○ Html - Button on a view and HTML editor
○ Html Header -  Header, Button on a view and HTML editor
• Operation
○ Generic
Business components and user interface components
○ View
rendering section of screen and only one user interface elements.
○ Action
can not any user interface components, only for action which contain business logic
○ Change
used with form type and it is called after change the textbox, Dropdown, Radio, Checkbox
○ Validate
to validation
○ Data
retrieve data from Database
○ Initialize
to initialize a screen
○ Extension
○ Process
for transaction
○ Interface 
triggered by FI Invocation schema that maps interface   

• Function :
Input to Output
User Formula
Web service
SQL Query
Stored Procedure
Determination
Sub Operation
Sub task
Submit Print Request
Business Control
Show Message
Apriso Message
Message Broker
MI Script
DAL Query
MDX Query



Process :
○ Top of process model.
○ Collection Of process Operation, Resources, Materials
Operation:
○ Child entity of Process
○ Collection of Steps, Resources, Materials
Step: 
○ Child entity of Operation
○ Work instruction with collection of function.  Resources, Materials
Function:
○ Child entity of step.
○ Business logic, collection of Input and Output.
Input :
○ data received by function
Output :
○ Data sent by function


Function :
• Call Webservice :
CustomHeaders - Content-Type :application/json;
Payload - json input
Url - https:test.com/inventory
 
BC :
• Send Mail : SendEmailToEmployee_v3 -> FromEmailAddress, ToEmailAddress, Subject, Message, SMTPServer (mandatory fields)
 
• Get Translation : GetDictionaryItemTranslation - DictionaryItemCode, LanguageID
 
• Set MI Points : SetList
• Get MI Points : GetList 


Modules Type(PB)
f.   Production
              1.Bill Of Material
                     Component
                     Componenet_...
              2.Genealogy
                     Genealogy
                     Genealogy_Detail
3.Recipe
       Component
       Recipe
       Recipe_Status
Recipe_Characterstic
Validation_Status
Validation_entity_type
4.Wip Orders
       Wip_Order
       Wip_Order_cONTAINER
       Wip_Order_Lot
       Wip_Order_Relation
Wip_Order_Status
Wip_Order_Type
Work_Flow_Status
5.Work Instructions
       Operation_Step+Work_Instruction
       Unit
Work_Instruction
Work_Instruction_Class
6.Operations
       Progress_Status
       Wip_Componenet
       Wip_Container
       Wip_Operations
       Wip_Operation_Step
       Wip_Req_Resource
Work_Center
Wip_Operation_...
      
g.   Quality
1.Issue Management
       Capa
Capa_Class
Capa_Status
Capa_Link
Capa_Step
Capa_Task
2.Quality Defect
Quality_Defect
Quality_Defect_Location
Quality_Defect_Type
Quality_Defect_Status
Unit_Document
3.Quality Inspection
       Disposition
       Disposition_Class
Disposition_Content
Disposition_Line
Disposition_Resource
Disposition_Status
Disposition_Test
Disposition_type
Disposition_User_Status
4.Quality Planning
Inspection_Plan
Inspection_Line
Inspection_Plan_Class
Inspection_Plan_Group
Quality_Gate
Inspection_Severity

h.   Maintenance
Main_Order_Task
Maint_Template
Maint_Template_Task
Resource_Maint_Task_Template
Resource_Maint_Task_Schedule

i.   Warehouse
1.Inventory
2.Packaging
3.Transactions
4.Counting

j.   Time and Labour
1.Attendance
       Attendance
       Attendance_Status
       Employee_Class
       Employee_Facility
       Pay_Cycle
Pay_Rule

2.Calendar
       Calendar
       Calendar_Type
       Calendar_Day
Employee_Calendar

3.Labour
       Labor
       Labor_Detail
       Labor_Status
       Lbor_Type
Work_Center
Labor_Code

4.Schedule
       Employee_Work_Schedule
       Employee_Break_Schedule
       Facility_Work_Schedule
Schedule_Type
Schedule_Status

5.Shifts
       Work_Shift
Break_Type
Work_Shift_Type

Types Of Entity
1.Screen
2.Layout
3.View
4.Operation
5.Process
6.ActionScript
7.Project

Entity Status
a.   Active
b.   Prototype (Ctrl + Shift + P)
c.   Developemt in Progress(Ctrl + Shift + G)
d.   Design in Progress(Ctrl + Shift + D)
e.   On Hold
f.   Cancelled

Validate(Ctrl + Shift + V)
Compile(Ctrl + Shift + B)

SubType of View
g.   General
h.   Form
i.   Header
j.   Html
k.   Html Header
Type of Operation
a.   Generic
b.   View
c.   Action
d.   Change
e.   Validate
f.   Data
g.   Iniyalize
h.   Extension
i.   Process
j.   Interface
k.   Labor
l.   Machine
m.   Background
SubType of Process
a.   Discreate Production
b.   Sequenced Production
c.   Production Rework
d.   Corrective Maintenance
e.   Predictive Maintenance
f.   Stablity testing
g.   Quality Recall
h.   Supplier release
i.   Supplier Purchase
j.   Warehouse Replenishment
k.   Receiving
Session Variables
Step to step data transfer
External Variables
Screen to Screen, View to view data transfer
System Parameter Variables
       Configued static data with Key & Value.
Project Manager
Entity Manager
List of Created and Modified Entity
ActionScript Manager
Bisiness Component Repository
Dictonary Manager
       Add and Manage Dictonary items
SystemParameter & List Manager
       Confiured Syated Parameter List
Determination Manager
       Configued static and Dynamic data with with Multiple columns(DET2_ViewName).
Web Service Manager
Work Instructions
Change Management
       Instead on one configure alternative Material and etc..
Quality Spectifications
Function
       Input/Output
Show Message
Sql Query
Stored Procedure
Sub Operation
User Formula
WebService
Submit Print Request
Sub Task
Business Componenet
Business Control
Determination

Steps
       Add functions
Input/Output Parameter
       Add input
       Add outpt
       Add Pair
Routing
      Route one step to another step basedon condition
Label Printing(QR/Bar code)
       Generete QR and BAR code
Scheduled Jobs

Select Values From System Parameter
SELECT spv.Value_ AS Image    
FROM System_Parameter sp
INNER JOIN SYSTEM_PARAMETER_VALUE spv ON sp.ID = spv.SystemParameterID
WHERE sp.Name = 'PRY_MBL4_MATERIAL_IMAGE'

Array Concodinate
Out_SelectedWipOrderNo = CurrentSelectedWipOrderNo.Concat(PreviousSelectedWipOrderNo).ToArray();

Remove List of data From Array
List<string> rest = Selected_WipOrderNo.Except(ReSelected_WipOrderNo).ToList();
FinalSelected_WipOrderNo = rest.ToArray();

Read the Inputs to ScreenInterface
$Context.inputs.Product

Set Output From ScreenInterface
$Context.outputs.Product

Js Code:
• Write Console log in Browser (Js) :
var msgObj = JSON.parse(msg);
if ($Context.inputs.ConsoleLogEnabled) {
console.log("Leftover data:");
console.log(msgObj);
}
 
• Apriso Popup Dragable:
<script>
$View.onLoaded(function(){
 
$('.apr-popup').css({"top": "90px" , "margin-top":"10px"}).draggable({ cursor: "move",
containment: "body",
scroll: false,
iframeFix: true,
handle: ".apr-popup-head"
});
});

</script>

Remove the data from Array
Array.prototype.remove = function(x)
{
     var i;
      for(i in this)
      {
       if(this[i].toString() == x.toString())
              {
                this.splice(i,1)
       }
     }
}

Compare Two Array
function compareArrays(arr1, arr2)
{
       return $(arr1).not(arr2).length == 0 && $(arr2).not(arr1).length == 0;
};

EX: var compereProductFamilyArray = compareArrays(SelectedProductNoExt_ProductFamily? 'true' : 'false'
                    
Add Selected table row value to Array
var SelectedProductNo = [];
$("table tr.selected").each(function ()
{     
var data = $(this).find("td:eq(1)").text();
       SelectedProductNo.push(data);
});

Tab View in HTML(GenericPortalTab)
<!-- Portal Tabs -->
<div class="TabList">
       <button type="button" data-flx-iterate="i,_inlineTabList" data-flx-bind="Action" value="{_inlineTabList[i]}" class="{_inlineTabClassList[i]}">
              <span>{_inlineTabTitleList[i]}</span>
              <span data-flx-filter="_inlineNotifyCountList[i] > 0" class="TabNotify" data-portal-id="{Panel}{_inlineTabList[i]}">{_inlineNotifyCountList[i]}</span>
       </button>
</div>
<div data-flx-subop="Call_PortalGenerateTabList"/>

Disable the button
$("button[value='MANAGE']").prop("disabled"false);

Table row click event
       $(".DynamicGrid table tbody").delegate("tr""click"function()
       {
       <!-- code -->

});

Selected row count
       $('.DynamicGrid table tbody tr.selected').length;

Place Holder to Textbox
       $('.fc_OrderNo input').attr("placeholder","Enter Order No");
       $('.fc_Update_ActivityID input').attr("readonly","readonly");

Hide Columns in Grid (Fields2HideList- List Of char)
Fields2Hide = new Array();
if(ColumnList !=null)
{      var Columns = ColumnList.split(',');
       for(var i = 0i < Columns.lengthi++)
       {   
           Fields2Hide.push(Columns[i]);
       }
}

List to Array in Apriso
List<string> _JobId = new List<string>();
for (int i=0i<WipOrderNoListForBatch.Lengthi++)
{
       _JobId.Add(In_JobId);
}
JobId = _JobId.ToArray();

List to Button Display in view Operation Code
<div class="btn_selection" data-flx-iterate="i,ButtonHtmlList"> {ButtonHtmlList[i]:html}</div>
<div data-flx-subop="Call_PortalGenerateButtonList"/>

Join array as string
Result = string.Join(", ", array);

Compare a string with List of string
foreach (string Machine in MachineList)
       {
           if(SelectedMachineName == Machine)
              {
                     SelectedMachineisAlternative = true; 
                     SelectedAlternativeMachineName = SelectedMachineName;
              }
       }

Number Validation in JQuery
$(document).on('keypress','div.decimal input',function(evt)
       {
              var result = $(this);
              result.val(result.val().replace(/[^0-9\.]/g, ''));
              if (result.val() = '' && (evt.which != 46 || result.val().indexOf('.'!= -1&& (evt.which < 48 || evt.which > 57))
              {
                     evt.preventDefault();
              }
       });


JqxPopup
Html:
<div id='scheduleWindow'>
       <div id="scheduleWindowHeader">
              <span></span>
       </div>
       <div id="schedulerWindowContent">
             <span></span>
       </div>
</div>
JavaScript:
$('#scheduleWindow').jqxWindow({
              width: 600,
              height: 200,
              resizable: false,
              isModaltrue,
              autoOpenfalse,
        });


C# Code:
• DebugMode code (c#): 
if (DebugMode)
{
throw new OperationException(Message,"");
}
• Input Value in Screen Interface (Js)
var consoleLogEnabled = $Context.inputs.ConsoleLogEnabled;
 
• Output Value in Screen Interface (Js)
$Context.outputs.RackContainerNo = containerNo;       
 
• Write MI log :
Log.Info("Exception in Machine Tracking operation: " + DateTime.UtcNow);
 
• Convert Scalar To List : Recipient -char, ToEmailAddress-char list
ToEmailAddress = new String[]{Recipient};
 
• Remove Empty String from Array :
Var ErrorList = ErrorCodes.Where(x => !string.IsNullOrEmpty(x)).ToArray();
VerificationStatus = ErrorList.Length == 0 ? MIPointValue : 0;
• Get JSON Based on input in Userformula:
JsonResult = Serializer.SerializeToJson(this.GetInputsObjectArray("")[0]);

• Get JSON Based on input in Userformula:
var payload = new
{Inputs = new
{
MachineId,
ProductNo,
ProductRevision1,
ProductRevision2,
LearningParamNames,
LearningParamTypes,
LearningParamValues,
LearningCRC,
Caller = "Apriso"
}
};
 
Payload = JsonConvert.SerializeObject(payload);
 
• Existing JSON add new field:
Newtonsoft.Json.Linq.JObject jsonData = Newtonsoft.Json.Linq.JObject.Parse(_Message);
if (jsonData.HasValues)
{
jsonData.Add("CreationTimestamp", CurrentUTCTime);
jsonData.Add("CreatedBy", CreatedBy);
}
Message = JsonConvert.SerializeObject(jsonData);
 
 
• Read From JSON List Data :
List<string> tempparent = new List<string>();
List<string> tempnumber = new List<string>();
List<string> tempsource = new List<string>();
List<string> tempproject_name = new List<string>();
List<string> tempproject_state = new List<string>();
 
dynamic dynJson = JsonConvert.DeserializeObject(Input);
foreach (var item in dynJson)
{
tempparent.Add(item.parent.ToString());
tempnumber.Add(item.number.ToString());
tempsource.Add(item.source.ToString());
tempproject_name.Add(item.project_name.ToString());
tempproject_state.Add(item.project_state.ToString());
}
 
parent = tempparent.ToArray();
number = tempnumber.ToArray();
source = tempsource.ToArray();
project_name = tempproject_name.ToArray();
project_state = tempproject_state.ToArray();
 
• Create Array in
Comments = new Array();
StockingPoints = new Array();
 
if (OperationIDList.length > 0)
{
for (var i=0;i<OperationIDList.length;i++)
{
Comments.push("");
StockingPoints.push("");
}
}
 
• Debug Mode:
if (DebugMode){
throw new OperationException("Debug mode enabled, database transactions are rolled back","");
}
• Remove Empty String form Array list
var ErrorList = ErrorCodes.Where(x => !string.IsNullOrEmpty(x)).ToArray();
 
• Array List to Scalar :
List<int> status = new List<int>();
WipOrderFound = false;
 
 
if (WorkOrderStatusList.Length >0 ){
WorkOrderStatus = WorkOrderStatusList[0];       
}
for (int count=0; count < AWOLPWipOrderNoList.Length; count++)
{
if (VerificationStatus == AWOLPStatusList[count])
{
WipOrderFound = true;
WipOrderNo = AWOLPWipOrderNoList[count];
WipOrderType = AWOLPWipOrderTypeList[count];
WorkOrderStatus = WorkOrderStatusList[count];
ProductID = AWOLPProductIDList[count];
SequenceNo = AWOLPSequenceNoList[count];
break;
}
}
 
• JSON to LIST :
Newtonsoft.Json.Linq.JObject jsonData = Newtonsoft.Json.Linq.JObject.Parse(JsonErrorsDictionary);
 
string error = "";
var jsonDictionaryErrorsList = jsonData["Items"].Select(p =>
   new
   {
       ID = (int)p["ID"],
       Code = (string)p["Code"],
       ShortText = (string)p["ShortText"],
       MediumText = (string)p["MediumText"],
       ExtendedText = (string)p["ExtendedText"]
   }
).ToList();

string errWrongResource = (from lst in jsonDictionaryErrorsList where lst.Code == "BS_ERR_PREPID_WRONG_RESOURCE" select lst.MediumText).FirstOrDefault();
string errInCorrectStatus = (from lst in jsonDictionaryErrorsList where lst.Code == "BS_ERR_PREPID_WRONG_STATUS" select lst.MediumText).FirstOrDefault();                                       
string errInWrongNoOfPrepID = (from lst in jsonDictionaryErrorsList where lst.Code == "BS_ERR_PREPID_WRONG_NO_OF_PREP" select lst.MediumText).FirstOrDefault();                                       
• Convert JSON to string :
 
if (string.IsNullOrEmpty(JsonString))
   return;
 
var MaterialLotObject = new
{
   partNumber = string.Empty,
quantity = 0m,
   kanbancardid = string.Empty,
   uuid = string.Empty,
valueStream = string.Empty,
workStation = string.Empty,
expirationDate = string.Empty,
uom  = string.Empty,
};
 
var outputMaterialLotObjectList = new[]
{
MaterialLotObject
}.ToList();
 
outputMaterialLotObjectList.Clear();
 
List<object> MaterialLotObjectList = new List<object>();
MaterialLotObjectList.Add(MaterialLotObject);
 
var ourObject = new
{
   MaterialLots = MaterialLotObjectList
};
 
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.FloatParseHandling = Newtonsoft.Json.FloatParseHandling.Decimal;
var deserializedObject = JsonConvert.DeserializeAnonymousType(JsonString, ourObject, settings);
 
foreach (var MaterialLot in deserializedObject.MaterialLots)
{
   var deserializedMaterial = JsonConvert.DeserializeAnonymousType(MaterialLot.ToString(), MaterialLotObject, settings);
 
   MaterialLotObject = new
   {
       deserializedMaterial.partNumber,
       deserializedMaterial.quantity,
       deserializedMaterial.kanbancardid,
       deserializedMaterial.uuid,
deserializedMaterial.valueStream,
deserializedMaterial.workStation,
deserializedMaterial.expirationDate,
deserializedMaterial.uom
   };
   outputMaterialLotObjectList.Add(MaterialLotObject);
}
 
List<decimal> quantityList = new List<decimal>();
List<string> PartNumberList = new List<string>();
List<string> KanbanCardIDList = new List<string>();
List<string> UUIDList = new List<string>();
List<string> ValueStreamList = new List<string>();
List<string> WorkStationList = new List<string>();
List<string> ExpirationDateList = new List<string>();
List<string> UOMList = new List<string>();
 
foreach (var MaterialLot in outputMaterialLotObjectList)
{
   PartNumberList.Add(MaterialLot.partNumber);
   quantityList.Add(MaterialLot.quantity);
   KanbanCardIDList.Add(MaterialLot.kanbancardid);
   UUIDList.Add(MaterialLot.uuid);
ValueStreamList.Add(MaterialLot.valueStream);
WorkStationList.Add(MaterialLot.workStation);
ExpirationDateList.Add(MaterialLot.expirationDate);
   UOMList.Add(MaterialLot.uom);
}
 
PartNumbers = string.Join(",",PartNumberList);
Quantities =  string.Join(",",quantityList);
KanbanCardIDs = string.Join(",",KanbanCardIDList);
UUIDs =  string.Join(",",UUIDList);
ValueStreams = string.Join(",",ValueStreamList);
WorkStations =  string.Join(",",WorkStationList);
ExpirationDates = string.Join(",",ExpirationDateList);
UOMs = string.Join(",",UOMList);
 

 
I/p:
{"MaterialLots": [{"partNumber":"36300777","quantity":"50.0","kanbancardid":"1000385413","uuid":"D1A4C958-7C45-4F4A-B3F6-D6470853B851","uom":"m","valueStream":"87","workStation":"31A_CELL02A","expirationDate":"2024-11-11"},{"partNumber":"37300777","quantity":"20.0","kanbancardid":"1000452132","uuid":"D1A4C958-7C45-4F4A-B3F6-D6470853B851","uom":"a","valueStream":"82","workStation":"31A_CELL02A","expirationDate":"2024-11-17"},{"partNumber":"38300777","quantity":"90.0","kanbancardid":"1000356758","uuid":"E6F2B682-9G35-5B6H-H3U3-N3294646C359","uom":"s","valueStream":"82","workStation":"31A_CELL02A","expirationDate":"2024-11-08"}]}



Inventory Sync Display:

SQL:
SELECT
createdon AS "LastInvSynch_IN"
from Inventory2 
where createdby='BOSS IBA1' 
order by createdon desc
fetch first 1 row  only
 
HTML :
<div class="apr-laflex-container apr-direction-vertical apr-la-fill ">
<dir class="apr-bg-gray-section apr-font-me apr-la-space-me" style="width:600px" >
<div class="apr-laflex-container apr-direction-horizontal">
<div class="apr-laflex-item ">Last inventory synch from Apriso to BOSS:</div>
<div><b>{LastInvSynch_OUT:yyyy-MM-dd HH:mm:ss}</b></div>
</div>
<div class="apr-laflex-container apr-direction-horizontal">
<div class="apr-laflex-item ">Last inventory created in Apriso:</div>
<div><b>{AprisoLastInvCreatedOn:yyyy-MM-dd HH:mm:ss}</b></div>
</div>
<div class="apr-laflex-container apr-direction-horizontal">
<div class="apr-laflex-item">Last inventory synch from BOSS to Apriso:</div>
<div><b>{LastInvSynch_IN:yyyy-MM-dd HH:mm:ss}</b></div>
</div>
</dir>
<div data-flx-bc="Grid"/>
</div>

Issue check display

SQL:
select IssueType, Count(IssueType) as IssueCount
from table(AF_MASTERDATA_INTEGRITYCHECK())
group by IssueType
 
Grid Query:
select IssueType, IssueDesc, Details
from table(AF_MASTERDATA_INTEGRITYCHECK())
 
HTML:
<div class=" apr-laflex-container apr-la-fill apr-direction-vertical">
<div class="apr-cttabhorizontal">
 <div onclick="setFilter('{IssueType[i]}')" data-flx-iterate="i, IssueType" >
   <span>{IssueType[i]}</span>
   <span class="apr-notify">{IssueCount[i]}</span>
 </div>
</div>
</div>
  
<script>
function setFilter(issueType)
{
console.log($(".DynamicGrid").dgGetFilters());
$(".DynamicGrid").dgSetFilters({"filter_issuetype":issueType});
 
}
</script>


Web service list display Grid:
SQL :
 
SELECT DISTINCT
WS.Name AS "WS_NameList",
WS.Enabled AS "WS_EnabledList",
WS.OperationCode AS "WS_OperationList",
--WS.Parameters AS "WS_Parameters"
PP.Name AS "WS_ProjectList",
xmltype(WS.Parameters).extract('//ProcessBuilderWebServiceType/text()').getstringval() as "WS_TypeList"
FROM WEBSERVICE WS
 JOIN OPERATION_HEADER OH
ON OH.ID = WS.OperationHeaderID
JOIN OPERATION O
ON O.OperatioNHeaderID = OH.ID
JOIN OPERATION_LINK OL
ON OL.Operationid = O.ID
AND OL.IsDefaultRevision = 1
LEFT JOIN PB_PROJECT PP
ON PP.ID = OH.ProjectID 
WHERE WS.Name NOT LIKE 'APR%'
ORDER BY WS.Name
 
HTML:
<div class="apr-font-me apr-laflex-container">
<div class="apr-laflex-container apr-direction-vertical">
<!-- system parameter config -->
<div class="apr-font-me apr-la-space-me">Web Services</div>
<table class="bs-table">
<thead class="apr-bg-ds-dark">
<tr>
<th>Web Service Name</th>
<th>Operation</th>
<th>Enabled</th>
<th>Type</th>
<th>URL</th>
</tr>
</thead>
<tbody>
<tr data-flx-iterate="i,WS_NameList">
<td>{WS_NameList[i]}</td>
<td>{WS_OperationList[i]}</td>
<td data-flx-filter="WS_EnabledList[i] == 1" class="apr-bg-green-medium">ON</td>
<td data-flx-filter="WS_EnabledList[i] != 1" class="apr-bg-red-medium">OFF</td>
<td data-flx-filter="WS_TypeList[i] == '1'" class="apr-bg-orange-medium">SOAP</td>
<td data-flx-filter="WS_TypeList[i] != '1'" class="">REST</td>
<td>(server name)/Apriso/httpServices/operations/{WS_NameList[i]}<span data-flx-filter="WS_ProjectList[i] != '' &&WS_TypeList[i] == '2' ">/project/{WS_ProjectList[i]}</span></td>
</tr>
</tbody>
</table>
</div>
</div>






Performance Issue:

Server performance issue:
• Due to application log generation c drive is full;
• IIS logs in web server c drive is full
• Memory consuming more then 90 % (user not properly logout)
 
Application Performance issue:
• Indexing problem
• Log enabled like debugging, error, perfromance
• User has process role
• Query / operation execution taking time

Concurrency violation issue





1 comment: