<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://in.compucrete.com/index.php?action=history&amp;feed=atom&amp;title=Keystone_FX_REST_API</id>
	<title>Keystone FX REST API - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://in.compucrete.com/index.php?action=history&amp;feed=atom&amp;title=Keystone_FX_REST_API"/>
	<link rel="alternate" type="text/html" href="http://in.compucrete.com/index.php?title=Keystone_FX_REST_API&amp;action=history"/>
	<updated>2026-05-15T15:25:46Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>http://in.compucrete.com/index.php?title=Keystone_FX_REST_API&amp;diff=364&amp;oldid=prev</id>
		<title>WikiAdmin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://in.compucrete.com/index.php?title=Keystone_FX_REST_API&amp;diff=364&amp;oldid=prev"/>
		<updated>2023-07-14T12:58:52Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:58, 14 July 2023&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key my_wiki:diff::1.12:old-363:rev-364 --&gt;
&lt;/table&gt;</summary>
		<author><name>WikiAdmin</name></author>
	</entry>
	<entry>
		<id>http://in.compucrete.com/index.php?title=Keystone_FX_REST_API&amp;diff=363&amp;oldid=prev</id>
		<title>Chanson: /* dispatchtime - loadsyardsbyhour */</title>
		<link rel="alternate" type="text/html" href="http://in.compucrete.com/index.php?title=Keystone_FX_REST_API&amp;diff=363&amp;oldid=prev"/>
		<updated>2023-05-08T19:07:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;dispatchtime - loadsyardsbyhour&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[CATEGORY: KSERVER]]&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
The FX REST API provides data used for dashboards.&lt;br /&gt;
'''NOTE:''' These calls are likely to be modified.  The budget data used in /KPIBUD is stored in a standalone SQLite database.&lt;br /&gt;
&lt;br /&gt;
See: [[Keystone_REST_Server_(KServer)]] for more on KServer.&lt;br /&gt;
&lt;br /&gt;
===Example URIs:===&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
http://127.0.0.1:8211/rest/kfxapi/v1/connection&lt;br /&gt;
http://127.0.0.1:8211/rest/kfxapi/v1/kpi?reportdate=2017-09-25&lt;br /&gt;
http://127.0.0.1:8211/rest/kfxapi/v1/kpibud?reportdate=2017-09-25&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Connection Test API==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;ROOT: /rest/kfxapi/v1&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====connection====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;connection&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: tests connection with the server &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; &lt;br /&gt;
white-space: -moz-pre-wrap; &lt;br /&gt;
white-space: -pre-wrap; &lt;br /&gt;
white-space: -o-pre-wrap; &lt;br /&gt;
word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;kfxapi_v1&amp;quot;: {&lt;br /&gt;
        &amp;quot;request_status&amp;quot;: {&lt;br /&gt;
            &amp;quot;status&amp;quot;: &amp;quot;200&amp;quot;,&lt;br /&gt;
            &amp;quot;msg&amp;quot;: &amp;quot;Keystone FX 2018.06 REST Server.&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==API v1==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;ROOT: /rest/kfxapi/v1&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Functions===&lt;br /&gt;
&lt;br /&gt;
====kpi====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
kpi&lt;br /&gt;
&amp;lt;BR&amp;gt;?reportdate= (Default = today)&lt;br /&gt;
&amp;lt;BR&amp;gt;?plantid= (Default = all) &amp;lt;accepts list of plants&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Returns a summary for Year to Date, Month to Date and daily quantity as well as load information.&lt;br /&gt;
&lt;br /&gt;
====kpibymo====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
kpibymo&lt;br /&gt;
&amp;lt;BR&amp;gt;?reportdate= (Default = today)&lt;br /&gt;
&amp;lt;BR&amp;gt;?plantid= (Default = all) &amp;lt;accepts list of plants&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Returns a summary by plant and ticket month.&lt;br /&gt;
&lt;br /&gt;
====kpiday====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
kpiday&lt;br /&gt;
&amp;lt;BR&amp;gt;?reportdate= (Default = today)&lt;br /&gt;
&amp;lt;BR&amp;gt;?begindate= (Default = start of today)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Returns summary of quantity, loads, and count of trucks and drivers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;kpiday&amp;quot;: [&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;plantno&amp;quot;: &amp;quot;01&amp;quot;,&lt;br /&gt;
			&amp;quot;periodyear&amp;quot;: 2023,&lt;br /&gt;
			&amp;quot;periodno&amp;quot;: 5,&lt;br /&gt;
			&amp;quot;producttype&amp;quot;: &amp;quot;M&amp;quot;,&lt;br /&gt;
			&amp;quot;ticketdate&amp;quot;: &amp;quot;2023-05-08T00:00:00.000Z&amp;quot;,&lt;br /&gt;
			&amp;quot;qtysold&amp;quot;: 13,&lt;br /&gt;
			&amp;quot;truckdays&amp;quot;: 1,&lt;br /&gt;
			&amp;quot;driverdays&amp;quot;: 1,&lt;br /&gt;
			&amp;quot;loads&amp;quot;: 1&lt;br /&gt;
		}&lt;br /&gt;
	]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====kpimonth====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
kpimonth&lt;br /&gt;
&amp;lt;BR&amp;gt;?begindate= (Default = start of today)&lt;br /&gt;
&amp;lt;BR&amp;gt;?enddate= (Default = today)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Returns summary of quantity, loads, and count of trucks and drivers.&lt;br /&gt;
&lt;br /&gt;
====KPIBUD====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
kpibud&lt;br /&gt;
&amp;lt;BR&amp;gt;?reportdate= (Default = today)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Returns a summary for Year to Date, Month to Date quantity as well as load information.&lt;br /&gt;
Unlike KPI these values need to be processed to determine the correct YTD, MTD and Current Day budgets.  The &amp;quot;workdays&amp;quot; section of the return values provide the additional required values.&lt;br /&gt;
&lt;br /&gt;
*'Day:' Multiply Monthly value by '''''workdaytratio'''''&lt;br /&gt;
*'Month:' Multiply Monthly value by '''''workmonthration'''''&lt;br /&gt;
*'Year:' Add Yearly value to caclulated month value.  (Yearly values include up to, but not the current month).&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;kpibud&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;ymd&amp;quot;: &amp;quot;Y&amp;quot;,&lt;br /&gt;
            &amp;quot;plantno&amp;quot;: &amp;quot;10&amp;quot;,&lt;br /&gt;
            &amp;quot;qtysold&amp;quot;: 124211,&lt;br /&gt;
            &amp;quot;driverdays&amp;quot;: 4211,&lt;br /&gt;
            &amp;quot;loads&amp;quot;: 12100&lt;br /&gt;
        },&lt;br /&gt;
 ...&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;ymd&amp;quot;: &amp;quot;M&amp;quot;,&lt;br /&gt;
            &amp;quot;plantno&amp;quot;: &amp;quot;16&amp;quot;,&lt;br /&gt;
            &amp;quot;qtysold&amp;quot;: 4102,&lt;br /&gt;
            &amp;quot;driverdays&amp;quot;: 189,&lt;br /&gt;
            &amp;quot;loads&amp;quot;: 418&lt;br /&gt;
        },&lt;br /&gt;
...&lt;br /&gt;
    &amp;quot;workdays&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;workdayofmonth&amp;quot;: 21,&lt;br /&gt;
            &amp;quot;workdaysthismonth&amp;quot;: 25,&lt;br /&gt;
            &amp;quot;workdayratio&amp;quot;: 0.04,&lt;br /&gt;
            &amp;quot;workmonthratio&amp;quot;: 0.84,&lt;br /&gt;
            &amp;quot;reportdate&amp;quot;: &amp;quot;2017-09-25T00:00:00.000Z&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Budget Table=====&lt;br /&gt;
&lt;br /&gt;
Keystone includes a budget table called ARTSLSBUD with the following fields:&lt;br /&gt;
*PERIOD_YEAR&lt;br /&gt;
*PERIOD_NO&lt;br /&gt;
*PLANT_NO&lt;br /&gt;
*PRODUCT_TYPE&lt;br /&gt;
*QTY_SOLD&lt;br /&gt;
*SALES&lt;br /&gt;
*TRUCKDAYS&lt;br /&gt;
*DRIVERDAYS&lt;br /&gt;
*LOADS&lt;br /&gt;
&lt;br /&gt;
====KSSLSBUD====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ksslsbud&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
:Returns raw data from the Keystone sales budget table&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;ksslsbud&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;plantno&amp;quot;: &amp;quot;01&amp;quot;,&lt;br /&gt;
            &amp;quot;periodyear&amp;quot;: 2019,&lt;br /&gt;
            &amp;quot;periodno&amp;quot;: 1,&lt;br /&gt;
            &amp;quot;producttype&amp;quot;: &amp;quot;M&amp;quot;,&lt;br /&gt;
            &amp;quot;qtysold&amp;quot;: 1100,&lt;br /&gt;
            &amp;quot;truckday&amp;quot;: 20,&lt;br /&gt;
            &amp;quot;driverdays&amp;quot;: 20,&lt;br /&gt;
            &amp;quot;loads&amp;quot;: 110&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;plantno&amp;quot;: &amp;quot;01&amp;quot;,&lt;br /&gt;
            &amp;quot;periodyear&amp;quot;: 2019,&lt;br /&gt;
            &amp;quot;periodno&amp;quot;: 2,&lt;br /&gt;
            &amp;quot;producttype&amp;quot;: &amp;quot;M&amp;quot;,&lt;br /&gt;
            &amp;quot;qtysold&amp;quot;: 1200,&lt;br /&gt;
            &amp;quot;truckday&amp;quot;: 21,&lt;br /&gt;
            &amp;quot;driverdays&amp;quot;: 21,&lt;br /&gt;
            &amp;quot;loads&amp;quot;: 120&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;plantno&amp;quot;: &amp;quot;01&amp;quot;,&lt;br /&gt;
            &amp;quot;periodyear&amp;quot;: 2019,&lt;br /&gt;
            &amp;quot;periodno&amp;quot;: 3,&lt;br /&gt;
            &amp;quot;producttype&amp;quot;: &amp;quot;M&amp;quot;,&lt;br /&gt;
            &amp;quot;qtysold&amp;quot;: 1300,&lt;br /&gt;
            &amp;quot;truckday&amp;quot;: 22,&lt;br /&gt;
            &amp;quot;driverdays&amp;quot;: 22,&lt;br /&gt;
            &amp;quot;loads&amp;quot;: 130&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;plantno&amp;quot;: &amp;quot;02&amp;quot;,&lt;br /&gt;
            &amp;quot;periodyear&amp;quot;: 2019,&lt;br /&gt;
            &amp;quot;periodno&amp;quot;: 1,&lt;br /&gt;
            &amp;quot;producttype&amp;quot;: &amp;quot;M&amp;quot;,&lt;br /&gt;
            &amp;quot;qtysold&amp;quot;: 500,&lt;br /&gt;
            &amp;quot;truckday&amp;quot;: 10,&lt;br /&gt;
            &amp;quot;driverdays&amp;quot;: 10,&lt;br /&gt;
            &amp;quot;loads&amp;quot;: 50&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;plantno&amp;quot;: &amp;quot;02&amp;quot;,&lt;br /&gt;
            &amp;quot;periodyear&amp;quot;: 2019,&lt;br /&gt;
            &amp;quot;periodno&amp;quot;: 2,&lt;br /&gt;
            &amp;quot;producttype&amp;quot;: &amp;quot;M&amp;quot;,&lt;br /&gt;
            &amp;quot;qtysold&amp;quot;: 510,&lt;br /&gt;
            &amp;quot;truckday&amp;quot;: 11,&lt;br /&gt;
            &amp;quot;driverdays&amp;quot;: 11,&lt;br /&gt;
            &amp;quot;loads&amp;quot;: 51&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;plantno&amp;quot;: &amp;quot;02&amp;quot;,&lt;br /&gt;
            &amp;quot;periodyear&amp;quot;: 2019,&lt;br /&gt;
            &amp;quot;periodno&amp;quot;: 3,&lt;br /&gt;
            &amp;quot;producttype&amp;quot;: &amp;quot;M&amp;quot;,&lt;br /&gt;
            &amp;quot;qtysold&amp;quot;: 520,&lt;br /&gt;
            &amp;quot;truckday&amp;quot;: 12,&lt;br /&gt;
            &amp;quot;driverdays&amp;quot;: 12,&lt;br /&gt;
            &amp;quot;loads&amp;quot;: 52&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====KSSLSBUD (post)====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ksslsbud&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
:Post Budget to the Keystone sales budget table.  Structure matches the GET.&lt;br /&gt;
&lt;br /&gt;
====tickettimes====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
tickettimes&lt;br /&gt;
&amp;lt;BR&amp;gt;?begindate= (Default = today)&lt;br /&gt;
&amp;lt;BR&amp;gt;?enddate= (Default = today)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Returns time information for each ticket.&lt;br /&gt;
&lt;br /&gt;
====dispatchtime====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
dispatchtime&lt;br /&gt;
&amp;lt;BR&amp;gt;?begindate= (Default = today)&lt;br /&gt;
&amp;lt;BR&amp;gt;?enddate= (Default = today)&lt;br /&gt;
&amp;lt;BR&amp;gt;?plantid= (Default = all) &amp;lt;accepts list of plants as of 3.6.1&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Returns multiple summarizations of dispatch time analysis for FX style dispatch time dashboards.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://127.0.0.1:8211/rest/kfxapi/v1/dispatchtime?begindate=2017-09-25&amp;amp;enddate=2017-09-25&amp;amp;plantid=01,02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====ontimebystatus=====&lt;br /&gt;
&lt;br /&gt;
:''(dispatchtime)''&lt;br /&gt;
Based on a threshold (currently 5 minutes) - returns the count of early, ontime and late in each status.  When the actual time is missing the status will not be counted, therefore the total may be more than the sum of the 3 individual counts.&lt;br /&gt;
&lt;br /&gt;
*'''plantno'''&lt;br /&gt;
*'''statusname'''&lt;br /&gt;
*'''statusno'''&lt;br /&gt;
*'''early''' Count of early loads&lt;br /&gt;
*'''ontime''' Count of on time loads&lt;br /&gt;
*'''late''' Count of late loads&lt;br /&gt;
*'''total''' Count of all loads&lt;br /&gt;
&lt;br /&gt;
=====timeinstatuscounts=====&lt;br /&gt;
&lt;br /&gt;
:''(dispatchtime)''&lt;br /&gt;
Based on a threshold (currently 5 minutes) - returns the count of loads the are quicker or take longer or take the expected time for a status.  When either of the 2 actual times is missing the status will not be counted, therefore the total may be more than the sum of the 3 individual counts.&lt;br /&gt;
&lt;br /&gt;
*'''plantno'''&lt;br /&gt;
*'''statusname'''&lt;br /&gt;
*'''statusno'''&lt;br /&gt;
*'''quicker''' Count of loads that are quicker than expected&lt;br /&gt;
*'''normal''' Count of loads that take the expected time&lt;br /&gt;
*'''longer''' Count of loads that take longer than expected&lt;br /&gt;
*'''total''' Count of all loads&lt;br /&gt;
&lt;br /&gt;
=====timeinstatusminutes=====&lt;br /&gt;
&lt;br /&gt;
:''(dispatchtime)''&lt;br /&gt;
Returns the average time per minute for each status.  When either of the 2 actual times is missing the status will not be counted, therefore the total may be more than the loads used in the calculation.&lt;br /&gt;
&lt;br /&gt;
*'''plantno'''&lt;br /&gt;
*'''statusname'''&lt;br /&gt;
*'''statusno'''&lt;br /&gt;
*'''totalminutes''' Sum of all minutes in this status&lt;br /&gt;
*'''loads''' Count of all loads &lt;br /&gt;
*'''minutesperload''' Average minutes in status per load&lt;br /&gt;
*'''targetminutesperload''' Average minutes in status per load&lt;br /&gt;
*'''total''' Count of all loads&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;quot;timeinstatusminutes&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;plantno&amp;quot;: &amp;quot;11&amp;quot;,&lt;br /&gt;
            &amp;quot;statusname&amp;quot;: &amp;quot;Batch&amp;quot;,&lt;br /&gt;
            &amp;quot;statusno&amp;quot;: 1,&lt;br /&gt;
            &amp;quot;totalminutes&amp;quot;: 2044,&lt;br /&gt;
            &amp;quot;targetminutes&amp;quot;: 168,&lt;br /&gt;
            &amp;quot;loads&amp;quot;: 89,&lt;br /&gt;
            &amp;quot;minutesperload&amp;quot;: 11.97,&lt;br /&gt;
            &amp;quot;targetminutesperload&amp;quot;: 9.89,&lt;br /&gt;
            &amp;quot;totalloads&amp;quot;: 89&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;plantno&amp;quot;: &amp;quot;11&amp;quot;,&lt;br /&gt;
            &amp;quot;statusname&amp;quot;: &amp;quot;Plant Wash&amp;quot;,&lt;br /&gt;
            &amp;quot;statusno&amp;quot;: 2,&lt;br /&gt;
            &amp;quot;totalminutes&amp;quot;: 1109,&lt;br /&gt;
            &amp;quot;targetminutes&amp;quot;: 445,&lt;br /&gt;
            &amp;quot;loads&amp;quot;: 87,&lt;br /&gt;
            &amp;quot;minutesperload&amp;quot;: 12.75,&lt;br /&gt;
            &amp;quot;targetminutesperload&amp;quot;: 5,&lt;br /&gt;
            &amp;quot;totalloads&amp;quot;: 89&lt;br /&gt;
        },&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====dloadsyardsbyhour=====&lt;br /&gt;
&lt;br /&gt;
:''(dispatchtime)''&lt;br /&gt;
Returns an hourly count of loads and summary of yards.  Currently this does not adjust for the number of days included in the range (subject to change)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;quot;loadsyardsbyhour&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;plantno&amp;quot;: &amp;quot;11&amp;quot;,&lt;br /&gt;
            &amp;quot;batchhour&amp;quot;: 6,&lt;br /&gt;
            &amp;quot;loads&amp;quot;: 6,&lt;br /&gt;
            &amp;quot;yards&amp;quot;: 64&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;plantno&amp;quot;: &amp;quot;11&amp;quot;,&lt;br /&gt;
            &amp;quot;batchhour&amp;quot;: 7,&lt;br /&gt;
            &amp;quot;loads&amp;quot;: 7,&lt;br /&gt;
            &amp;quot;yards&amp;quot;: 70&lt;br /&gt;
        },&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====materialrequiredbyhour====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
materialrequiredbyhour&lt;br /&gt;
&amp;lt;BR&amp;gt;?reportdate= (Default = today)&lt;br /&gt;
&amp;lt;BR&amp;gt;?plantid= (Default = all) &amp;lt;accepts list of plants as of 3.6.1&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sample call: &amp;lt;code&amp;gt; http://127.0.0.1:8211/rest/kfxapi/v1/materialrequiredbyhour?reportdate=2017-09-25&amp;amp;plantid=11 &amp;lt;/code&amp;gt;&lt;br /&gt;
*'''required''' Amount required for the whole day.&lt;br /&gt;
*'''requiredremain''' Amount required for unshipped loads.  A load is considered shipped once it reaches status 2 which triggers when batch weights were received.&lt;br /&gt;
&lt;br /&gt;
sample response:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
matreqsum: [&lt;br /&gt;
{&lt;br /&gt;
plantno: &amp;quot;11&amp;quot;,&lt;br /&gt;
hour: 5,&lt;br /&gt;
ingtype: &amp;quot;Cement&amp;quot;,&lt;br /&gt;
required: 6721,&lt;br /&gt;
requiredremain: 0,&lt;br /&gt;
unit: &amp;quot;LB&amp;quot;,&lt;br /&gt;
ingredient: &amp;quot;CMX1&amp;quot;&lt;br /&gt;
},&lt;br /&gt;
{&lt;br /&gt;
plantno: &amp;quot;11&amp;quot;,&lt;br /&gt;
hour: 6,&lt;br /&gt;
ingtype: &amp;quot;Cement&amp;quot;,&lt;br /&gt;
required: 20163,&lt;br /&gt;
requiredremain: 0,&lt;br /&gt;
unit: &amp;quot;LB&amp;quot;,&lt;br /&gt;
ingredient: &amp;quot;CMX1&amp;quot;&lt;br /&gt;
},...&lt;br /&gt;
],&lt;br /&gt;
matreqday: [&lt;br /&gt;
{&lt;br /&gt;
plantno: &amp;quot;11&amp;quot;,&lt;br /&gt;
ingtype: &amp;quot;Cement&amp;quot;,&lt;br /&gt;
required: 6721,&lt;br /&gt;
requiredremain: 0,&lt;br /&gt;
unit: &amp;quot;LB&amp;quot;,&lt;br /&gt;
ingredient: &amp;quot;CMX1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====batchvariation====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
batchvariation&lt;br /&gt;
&amp;lt;BR&amp;gt;?begindate= (Default = beginning of today)&lt;br /&gt;
&amp;lt;BR&amp;gt;?enddate= (Default = end of today)&lt;br /&gt;
&amp;lt;BR&amp;gt;?plantid= (Default = all) &amp;lt;accepts list of plants&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;batchvariation&amp;quot;:[&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;plantno&amp;quot;:&amp;quot;01&amp;quot;,&lt;br /&gt;
			&amp;quot;targetweightsum&amp;quot;:1133,&lt;br /&gt;
			&amp;quot;actualweightsum&amp;quot;:1135,&lt;br /&gt;
			&amp;quot;targetweightperld&amp;quot;:566,&lt;br /&gt;
			&amp;quot;actualweightperld&amp;quot;:567,&lt;br /&gt;
			&amp;quot;ingredtype&amp;quot;:&amp;quot;C&amp;quot;,&lt;br /&gt;
			&amp;quot;ingredid&amp;quot;:&amp;quot;CEM-1&amp;quot;,&lt;br /&gt;
			&amp;quot;weightums&amp;quot;:&amp;quot;LB&amp;quot;,&lt;br /&gt;
			&amp;quot;loadsize&amp;quot;:1,&lt;br /&gt;
			&amp;quot;loads&amp;quot;:2,&lt;br /&gt;
			&amp;quot;varpct&amp;quot;:0.176522508263588&lt;br /&gt;
		}&lt;br /&gt;
	]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Returns variation between targetweight and actualweight for a given batch.&lt;br /&gt;
&lt;br /&gt;
====trucksbystatus====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;added 3.6.1&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
trucksbystatus&lt;br /&gt;
&amp;lt;BR&amp;gt;?begindate= (Default = beginning of today)&lt;br /&gt;
&amp;lt;BR&amp;gt;?enddate= (Default = end of today)&lt;br /&gt;
&amp;lt;BR&amp;gt;?plantid= (Default = all) &amp;lt;accepts list of plants&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sample call: &amp;lt;code&amp;gt; http://127.0.0.1:8211/rest/kfxapi/v1/trucksbystatus?begindate=2017-09-25&amp;amp;enddate=2017-09-25&amp;amp;plantid=01,02&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''inservice''' The number of clocked-in trucks&lt;br /&gt;
*'''atplant''' The number of trucks that have not shipped yet or have returned to the plant&lt;br /&gt;
&lt;br /&gt;
sample response:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;trucksbystatus&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;plantno&amp;quot;: &amp;quot;01&amp;quot;,&lt;br /&gt;
            &amp;quot;inservice&amp;quot;: 3,&lt;br /&gt;
            &amp;quot;ticketed&amp;quot;: 1,&lt;br /&gt;
            &amp;quot;loaded&amp;quot;: 0,&lt;br /&gt;
            &amp;quot;tojob&amp;quot;: 0,&lt;br /&gt;
            &amp;quot;onjob&amp;quot;: 0,&lt;br /&gt;
            &amp;quot;pouring&amp;quot;: 0,&lt;br /&gt;
            &amp;quot;jobwash&amp;quot;: 0,&lt;br /&gt;
            &amp;quot;returning&amp;quot;: 0,&lt;br /&gt;
            &amp;quot;atplant&amp;quot;: 2&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;plantno&amp;quot;: &amp;quot;02&amp;quot;,&lt;br /&gt;
            &amp;quot;inservice&amp;quot;: 5,&lt;br /&gt;
            &amp;quot;ticketed&amp;quot;: 0,&lt;br /&gt;
            &amp;quot;loaded&amp;quot;: 0,&lt;br /&gt;
            &amp;quot;tojob&amp;quot;: 0,&lt;br /&gt;
            &amp;quot;onjob&amp;quot;: 0,&lt;br /&gt;
            &amp;quot;pouring&amp;quot;: 0,&lt;br /&gt;
            &amp;quot;jobwash&amp;quot;: 0,&lt;br /&gt;
            &amp;quot;returning&amp;quot;: 0,&lt;br /&gt;
            &amp;quot;atplant&amp;quot;: 5&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====trucksinstatus====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;added 3.6.99.69&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
trucksinstatus&lt;br /&gt;
&amp;lt;BR&amp;gt;?begindate= (Default = beginning of today)&lt;br /&gt;
&amp;lt;BR&amp;gt;?enddate= (Default = end of today)&lt;br /&gt;
&amp;lt;BR&amp;gt;?plantid= (Default = all) &amp;lt;accepts list of plants&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;?status=#&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sample call: &amp;lt;code&amp;gt;http://127.0.0.1:8211/rest/kfxapi/v1/trucksinstatus?PlantId=01,02,03,04,05&amp;amp;Status=7&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''projtime''' The projected on-job time (status between 1 and 3) or projected at-plant time (status between 4 and 7)&lt;br /&gt;
*'''timeinstatus''' The number of minutes the truck has been in the requested status&lt;br /&gt;
*'''timeremaining''' The number of minutes the truck has remaining in the requested status (can be negative which indicates that the truck is late)&lt;br /&gt;
&lt;br /&gt;
sample response:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;trucksinstatus&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;truckno&amp;quot;: &amp;quot;201&amp;quot;,&lt;br /&gt;
            &amp;quot;plantno&amp;quot;: &amp;quot;02&amp;quot;,&lt;br /&gt;
            &amp;quot;projtime&amp;quot;: &amp;quot;2021-10-11T15:00:18.000Z&amp;quot;,&lt;br /&gt;
            &amp;quot;timeinstatus&amp;quot;: 4,&lt;br /&gt;
            &amp;quot;timeremaining&amp;quot;: 5&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====battol====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
battol&lt;br /&gt;
&amp;lt;BR&amp;gt;?BeginDT= (Default = beginning of today)&lt;br /&gt;
&amp;lt;BR&amp;gt;?EndDT= (Default = end of today)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;battol&amp;quot;:[&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;plantno&amp;quot;:&amp;quot;01&amp;quot;,&lt;br /&gt;
			&amp;quot;ingtype&amp;quot;:&amp;quot;A&amp;quot;,&lt;br /&gt;
			&amp;quot;ingtypedesc&amp;quot;:&amp;quot;Aggregate&amp;quot;,&lt;br /&gt;
			&amp;quot;blwtol&amp;quot;:0,&lt;br /&gt;
			&amp;quot;intol&amp;quot;:12,&lt;br /&gt;
			&amp;quot;abvtol&amp;quot;:4,&lt;br /&gt;
			&amp;quot;loaddate&amp;quot;:&amp;quot;2023-03-01T00:00:00.000Z&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Returns Batch Tolerance.&lt;/div&gt;</summary>
		<author><name>Chanson</name></author>
	</entry>
</feed>