UNPKG

edifact_orders_iso_16033

Version:

parser for EDIFACT ORDERS ISO 16033 Ophthalmic optics and instruments

1,584 lines (669 loc) 31 kB
<!doctype html> <html lang="en"> <head> <meta charset='utf-8'> <title>edifact_orders_iso_16033 1.1.1 | Documentation</title> <meta name='description' content='parser for EDIFACT ORDERS ISO 16033 Ophthalmic optics and instruments '> <meta name='viewport' content='width=device-width,initial-scale=1'> <link href='assets/bass.css' rel='stylesheet'> <link href='assets/style.css' rel='stylesheet'> <link href='assets/github.css' rel='stylesheet'> <link href='assets/split.css' rel='stylesheet'> </head> <body class='documentation m0'> <div class='flex'> <div id='split-left' class='overflow-auto fs0 height-viewport-100'> <div class='py1 px2'> <h3 class='mb0 no-anchor'>edifact_orders_iso_16033</h3> <div class='mb1'><code>1.1.1</code></div> <input placeholder='Filter' id='filter-input' class='col12 block input' spellcheck='false' autocapitalize='off' autocorrect='off' type='text' /> <div id='toc'> <ul class='list-reset h5 py1-ul'> <li><a href='#edi' class=" toggle-sibling"> Edi <span class='icon'></span> </a> <div class='toggle-target display-none'> <ul class='list-reset py1-ul pl1'> <li class='h5'><span>Static members</span></li> <li><a href='#ediescape' class='regular pre-open'> .escape </a></li> <li><a href='#edicompact' class='regular pre-open'> .compact </a></li> <li><a href='#edidate' class='regular pre-open'> .date </a></li> <li><a href='#edidatetime' class='regular pre-open'> .datetime </a></li> </ul> <ul class='list-reset py1-ul pl1'> <li class='h5'><span>Instance members</span></li> <li><a href='#edireset' class='regular pre-open'> #reset </a></li> <li><a href='#ediwritesegment' class='regular pre-open'> #writeSegment </a></li> <li><a href='#ediwriteelements' class='regular pre-open'> #writeElements </a></li> <li><a href='#ediwritecomponent' class='regular pre-open'> #writeComponent </a></li> </ul> </div> </li> <li><a href='#segment' class=" toggle-sibling"> Segment <span class='icon'></span> </a> <div class='toggle-target display-none'> <ul class='list-reset py1-ul pl1'> <li class='h5'><span>Instance members</span></li> <li><a href='#segmentval' class='regular pre-open'> #val </a></li> </ul> </div> </li> <li><a href='#message' class=" toggle-sibling"> Message <span class='icon'></span> </a> <div class='toggle-target display-none'> <ul class='list-reset py1-ul pl1'> <li class='h5'><span>Instance members</span></li> <li><a href='#messagereset' class='regular pre-open'> #reset </a></li> <li><a href='#messageinterpret' class='regular pre-open'> #interpret </a></li> <li><a href='#messageexpect' class='regular pre-open'> #expect </a></li> <li><a href='#messageexpectval' class='regular pre-open'> #expectVal </a></li> <li><a href='#messagesetprop' class='regular pre-open'> #setProp </a></li> <li><a href='#messageopensegment' class='regular pre-open'> #openSegment </a></li> </ul> </div> </li> <li><a href='#order16033' class=" toggle-sibling"> Order16033 <span class='icon'></span> </a> <div class='toggle-target display-none'> <ul class='list-reset py1-ul pl1'> <li class='h5'><span>Instance members</span></li> <li><a href='#order16033reset' class='regular pre-open'> #reset </a></li> </ul> </div> </li> </ul> </div> <div class='mt1 h6 quiet'> <a href='https://documentation.js.org/reading-documentation.html'>Need help reading this?</a> </div> </div> </div> <div id='split-right' class='relative overflow-auto height-viewport-100'> <section class='p2 mb2 clearfix bg-white minishadow'> <div class='clearfix'> <h3 class='fl m0' id='edi'> Edi </h3> </div> <p>Edi this class serves as an Edi writer</p> <p>before writing a new message, you must call the <code>.reset</code> method</p> <div class='pre p1 fill-light mt0'>new Edi()</div> <div class='py1 quiet mt1 prose-big'>Static Members</div> <div class="clearfix"> <div class='border-bottom' id='ediescape'> <div class="clearfix small pointer toggle-sibling"> <div class="py1 contain"> <a class='icon pin-right py1 dark-link caret-right'></a> <span class='code strong strong truncate'>escape(str)</span> </div> </div> <div class="clearfix display-none toggle-target"> <section class='p2 mb2 clearfix bg-white minishadow'> <p>for internal use only</p> <div class='pre p1 fill-light mt0'>escape(str: any)</div> <div class='py1 quiet mt1 prose-big'>Parameters</div> <div class='prose'> <div class='space-bottom0'> <div> <span class='code bold'>str</span> <code class='quiet'>(any)</code> </div> </div> </div> </section> </div> </div> <div class='border-bottom' id='edicompact'> <div class="clearfix small pointer toggle-sibling"> <div class="py1 contain"> <a class='icon pin-right py1 dark-link caret-right'></a> <span class='code strong strong truncate'>compact(lines)</span> </div> </div> <div class="clearfix display-none toggle-target"> <section class='p2 mb2 clearfix bg-white minishadow'> <p>remove the leading,trailing and LF in order to be complient with EDIFACT EDIFACT strings are multiline in the test only for readability</p> <div class='pre p1 fill-light mt0'>compact(lines: any)</div> <div class='py1 quiet mt1 prose-big'>Parameters</div> <div class='prose'> <div class='space-bottom0'> <div> <span class='code bold'>lines</span> <code class='quiet'>(any)</code> </div> </div> </div> </section> </div> </div> <div class='border-bottom' id='edidate'> <div class="clearfix small pointer toggle-sibling"> <div class="py1 contain"> <a class='icon pin-right py1 dark-link caret-right'></a> <span class='code strong strong truncate'>date(datestr)</span> </div> </div> <div class="clearfix display-none toggle-target"> <section class='p2 mb2 clearfix bg-white minishadow'> <p>return a Date from an edi date str compatible with SQL</p> <div class='pre p1 fill-light mt0'>date(datestr: any)</div> <div class='py1 quiet mt1 prose-big'>Parameters</div> <div class='prose'> <div class='space-bottom0'> <div> <span class='code bold'>datestr</span> <code class='quiet'>(any)</code> </div> </div> </div> </section> </div> </div> <div class='border-bottom' id='edidatetime'> <div class="clearfix small pointer toggle-sibling"> <div class="py1 contain"> <a class='icon pin-right py1 dark-link caret-right'></a> <span class='code strong strong truncate'>datetime(dt)</span> </div> </div> <div class="clearfix display-none toggle-target"> <section class='p2 mb2 clearfix bg-white minishadow'> <p>convert dt to an datetime string YYYY-MM-DD HH:MM:SS</p> <div class='pre p1 fill-light mt0'>datetime(dt: any)</div> <div class='py1 quiet mt1 prose-big'>Parameters</div> <div class='prose'> <div class='space-bottom0'> <div> <span class='code bold'>dt</span> <code class='quiet'>(any)</code> can either be an element ['YYYYMMD','HHMM'] or a YYYYMMDDHHMM string </div> </div> </div> </section> </div> </div> </div> <div class='py1 quiet mt1 prose-big'>Instance Members</div> <div class="clearfix"> <div class='border-bottom' id='edireset'> <div class="clearfix small pointer toggle-sibling"> <div class="py1 contain"> <a class='icon pin-right py1 dark-link caret-right'></a> <span class='code strong strong truncate'>reset()</span> </div> </div> <div class="clearfix display-none toggle-target"> <section class='p2 mb2 clearfix bg-white minishadow'> <p>reset this method clear the current edifact string and reset the internal state of Edi</p> <p>it has to be called before any new message.</p> <div class='pre p1 fill-light mt0'>reset()</div> </section> </div> </div> <div class='border-bottom' id='ediwritesegment'> <div class="clearfix small pointer toggle-sibling"> <div class="py1 contain"> <a class='icon pin-right py1 dark-link caret-right'></a> <span class='code strong strong truncate'>writeSegment(segment, elements)</span> </div> </div> <div class="clearfix display-none toggle-target"> <section class='p2 mb2 clearfix bg-white minishadow'> <p>writeSegement write a segment of name <code>segment</code> with a number of elements. if an element is a complex element (= with more than one component), all components should be passed as an array.</p> <p>If an element must be empty, pass undefined if this is not the last defined element.</p> <div class='pre p1 fill-light mt0'>writeSegment(segment: any, elements: ...any)</div> <div class='py1 quiet mt1 prose-big'>Parameters</div> <div class='prose'> <div class='space-bottom0'> <div> <span class='code bold'>segment</span> <code class='quiet'>(any)</code> {string} the name of the segment (3 UpperCase chars) </div> </div> <div class='space-bottom0'> <div> <span class='code bold'>elements</span> <code class='quiet'>(...any)</code> {... string | array} </div> </div> </div> <div class='py1 quiet mt1 prose-big'>Example</div> <pre class='p1 overflow-auto round fill-light'><span class="hljs-keyword">let</span> edi = <span class="hljs-keyword">new</span> Edi(); edi.writeSegment(<span class="hljs-string">'UNB'</span>,[<span class="hljs-string">'UNOC'</span>,<span class="hljs-number">1</span>],<span class="hljs-string">'WS'</span>,<span class="hljs-string">'ESTORE'</span>,<span class="hljs-string">'NOV'</span>,[<span class="hljs-string">'20181001'</span>,<span class="hljs-string">'1255'</span>],<span class="hljs-string">'253006'</span>,<span class="hljs-literal">undefined</span>,<span class="hljs-string">'ESTORE'</span>);</pre> </section> </div> </div> <div class='border-bottom' id='ediwriteelements'> <div class="clearfix small pointer toggle-sibling"> <div class="py1 contain"> <a class='icon pin-right py1 dark-link caret-right'></a> <span class='code strong strong truncate'>writeElements(elements)</span> </div> </div> <div class="clearfix display-none toggle-target"> <section class='p2 mb2 clearfix bg-white minishadow'> <p>for internal use only</p> <div class='pre p1 fill-light mt0'>writeElements(elements: any)</div> <div class='py1 quiet mt1 prose-big'>Parameters</div> <div class='prose'> <div class='space-bottom0'> <div> <span class='code bold'>elements</span> <code class='quiet'>(any)</code> </div> </div> </div> </section> </div> </div> <div class='border-bottom' id='ediwritecomponent'> <div class="clearfix small pointer toggle-sibling"> <div class="py1 contain"> <a class='icon pin-right py1 dark-link caret-right'></a> <span class='code strong strong truncate'>writeComponent(component)</span> </div> </div> <div class="clearfix display-none toggle-target"> <section class='p2 mb2 clearfix bg-white minishadow'> <p>for internal use only</p> <div class='pre p1 fill-light mt0'>writeComponent(component: any)</div> <div class='py1 quiet mt1 prose-big'>Parameters</div> <div class='prose'> <div class='space-bottom0'> <div> <span class='code bold'>component</span> <code class='quiet'>(any)</code> </div> </div> </div> </section> </div> </div> </div> </section> <section class='p2 mb2 clearfix bg-white minishadow'> <div class='clearfix'> <h3 class='fl m0' id='segment'> Segment </h3> </div> <p>Segment this class represent a segment with all elements / component</p> <div class='pre p1 fill-light mt0'>new Segment(segment: any)</div> <div class='py1 quiet mt1 prose-big'>Parameters</div> <div class='prose'> <div class='space-bottom0'> <div> <span class='code bold'>segment</span> <code class='quiet'>(any)</code> </div> </div> </div> <div class='py1 quiet mt1 prose-big'>Instance Members</div> <div class="clearfix"> <div class='border-bottom' id='segmentval'> <div class="clearfix small pointer toggle-sibling"> <div class="py1 contain"> <a class='icon pin-right py1 dark-link caret-right'></a> <span class='code strong strong truncate'>val(element, component)</span> </div> </div> <div class="clearfix display-none toggle-target"> <section class='p2 mb2 clearfix bg-white minishadow'> <p>return the value of a given element/component of the segment if the element or component doen't exist, return undefined.</p> <div class='pre p1 fill-light mt0'>val(element: int, component: int)</div> <div class='py1 quiet mt1 prose-big'>Parameters</div> <div class='prose'> <div class='space-bottom0'> <div> <span class='code bold'>element</span> <code class='quiet'>(int)</code> the number of the element of the segment </div> </div> <div class='space-bottom0'> <div> <span class='code bold'>component</span> <code class='quiet'>(int)</code> the number of the compenent of the element or undefined if all components must be returned </div> </div> </div> </section> </div> </div> </div> </section> <section class='p2 mb2 clearfix bg-white minishadow'> <div class='clearfix'> <h3 class='fl m0' id='message'> Message </h3> </div> <p>Message The super class for all message interpreters.</p> <p>Implement the mechanism of message interpretation but does noting in itself since it has no implementation of any segment</p> <div class='pre p1 fill-light mt0'>new Message(encoding: any, segments: any, elements: any)</div> <div class='py1 quiet mt1 prose-big'>Parameters</div> <div class='prose'> <div class='space-bottom0'> <div> <span class='code bold'>encoding</span> <code class='quiet'>(any)</code> </div> </div> <div class='space-bottom0'> <div> <span class='code bold'>segments</span> <code class='quiet'>(any)</code> </div> </div> <div class='space-bottom0'> <div> <span class='code bold'>elements</span> <code class='quiet'>(any)</code> </div> </div> </div> <div class='py1 quiet mt1 prose-big'>Instance Members</div> <div class="clearfix"> <div class='border-bottom' id='messagereset'> <div class="clearfix small pointer toggle-sibling"> <div class="py1 contain"> <a class='icon pin-right py1 dark-link caret-right'></a> <span class='code strong strong truncate'>reset()</span> </div> </div> <div class="clearfix display-none toggle-target"> <section class='p2 mb2 clearfix bg-white minishadow'> <p>reset is called at the beginning of interpret and must clear all previous data.</p> <p>should be overwritten by the class that extends Message</p> <div class='pre p1 fill-light mt0'>reset()</div> </section> </div> </div> <div class='border-bottom' id='messageinterpret'> <div class="clearfix small pointer toggle-sibling"> <div class="py1 contain"> <a class='icon pin-right py1 dark-link caret-right'></a> <span class='code strong strong truncate'>interpret(edifact)</span> </div> </div> <div class="clearfix display-none toggle-target"> <section class='p2 mb2 clearfix bg-white minishadow'> <p>Interpret an EDIFACT Messaage by calling methods for each segment</p> <p>Errors will be reported by exceptions</p> <div class='pre p1 fill-light mt0'>interpret(edifact: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>)</div> <div class='py1 quiet mt1 prose-big'>Parameters</div> <div class='prose'> <div class='space-bottom0'> <div> <span class='code bold'>edifact</span> <code class='quiet'>(<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>)</code> the edifact string </div> </div> </div> </section> </div> </div> <div class='border-bottom' id='messageexpect'> <div class="clearfix small pointer toggle-sibling"> <div class="py1 contain"> <a class='icon pin-right py1 dark-link caret-right'></a> <span class='code strong strong truncate'>expect(variable, values, message)</span> </div> </div> <div class="clearfix display-none toggle-target"> <section class='p2 mb2 clearfix bg-white minishadow'> <p>throw an error if variable has not an expected value</p> <p>variable = the variable to check values an expected value or an array of expected value. if undefined, doesn't check, just print the message</p> <p>returns variable if everything ok</p> <div class='pre p1 fill-light mt0'>expect(variable: any, values: any, message: any)</div> <div class='py1 quiet mt1 prose-big'>Parameters</div> <div class='prose'> <div class='space-bottom0'> <div> <span class='code bold'>variable</span> <code class='quiet'>(any)</code> </div> </div> <div class='space-bottom0'> <div> <span class='code bold'>values</span> <code class='quiet'>(any)</code> </div> </div> <div class='space-bottom0'> <div> <span class='code bold'>message</span> <code class='quiet'>(any)</code> </div> </div> </div> </section> </div> </div> <div class='border-bottom' id='messageexpectval'> <div class="clearfix small pointer toggle-sibling"> <div class="py1 contain"> <a class='icon pin-right py1 dark-link caret-right'></a> <span class='code strong strong truncate'>expectVal(elementNumber, componentNumber, values)</span> </div> </div> <div class="clearfix display-none toggle-target"> <section class='p2 mb2 clearfix bg-white minishadow'> <p>check that a given component has a given value or is in a given set of values</p> <div class='pre p1 fill-light mt0'>expectVal(elementNumber: any, componentNumber: any, values: any)</div> <div class='py1 quiet mt1 prose-big'>Parameters</div> <div class='prose'> <div class='space-bottom0'> <div> <span class='code bold'>elementNumber</span> <code class='quiet'>(any)</code> of the current segment </div> </div> <div class='space-bottom0'> <div> <span class='code bold'>componentNumber</span> <code class='quiet'>(any)</code> in the element </div> </div> <div class='space-bottom0'> <div> <span class='code bold'>values</span> <code class='quiet'>(any)</code> either a string or an array of string </div> </div> </div> </section> </div> </div> <div class='border-bottom' id='messagesetprop'> <div class="clearfix small pointer toggle-sibling"> <div class="py1 contain"> <a class='icon pin-right py1 dark-link caret-right'></a> <span class='code strong strong truncate'>setProp(obj, property, elementNumber, componentNumber)</span> </div> </div> <div class="clearfix display-none toggle-target"> <section class='p2 mb2 clearfix bg-white minishadow'> <p>set a property if the given element / component is defined</p> <div class='pre p1 fill-light mt0'>setProp(obj: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object">object</a>, property: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>, elementNumber: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a>, componentNumber: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a>)</div> <div class='py1 quiet mt1 prose-big'>Parameters</div> <div class='prose'> <div class='space-bottom0'> <div> <span class='code bold'>obj</span> <code class='quiet'>(<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object">object</a>)</code> the object to set a property </div> </div> <div class='space-bottom0'> <div> <span class='code bold'>property</span> <code class='quiet'>(<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>)</code> the property name </div> </div> <div class='space-bottom0'> <div> <span class='code bold'>elementNumber</span> <code class='quiet'>(<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a>)</code> the element number of the current segment </div> </div> <div class='space-bottom0'> <div> <span class='code bold'>componentNumber</span> <code class='quiet'>(<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a>)</code> the number of the component to look for. if undefined, the array of components is put into the property <p>if either the element or element.component of the _currentSegment is undefined, nothing is done</p> </div> </div> </div> </section> </div> </div> <div class='border-bottom' id='messageopensegment'> <div class="clearfix small pointer toggle-sibling"> <div class="py1 contain"> <a class='icon pin-right py1 dark-link caret-right'></a> <span class='code strong strong truncate'>openSegment(segment)</span> </div> </div> <div class="clearfix display-none toggle-target"> <section class='p2 mb2 clearfix bg-white minishadow'> <p>understand the previous segment and open a new one in order to collect elements</p> <div class='pre p1 fill-light mt0'>openSegment(segment: any)</div> <div class='py1 quiet mt1 prose-big'>Parameters</div> <div class='prose'> <div class='space-bottom0'> <div> <span class='code bold'>segment</span> <code class='quiet'>(any)</code> name of the segment </div> </div> </div> </section> </div> </div> </div> </section> <section class='p2 mb2 clearfix bg-white minishadow'> <div class='clearfix'> <h3 class='fl m0' id='order16033'> Order16033 </h3> </div> <p>Order16033 a parser for ORDERS according to ISO16033</p> <div class='pre p1 fill-light mt0'>new Order16033()</div> <p> Extends <a href="#message">Message</a> </p> <div class='py1 quiet mt1 prose-big'>Instance Members</div> <div class="clearfix"> <div class='border-bottom' id='order16033reset'> <div class="clearfix small pointer toggle-sibling"> <div class="py1 contain"> <a class='icon pin-right py1 dark-link caret-right'></a> <span class='code strong strong truncate'>reset()</span> </div> </div> <div class="clearfix display-none toggle-target"> <section class='p2 mb2 clearfix bg-white minishadow'> <p>reset must be call before interpreting a new message.</p> <div class='pre p1 fill-light mt0'>reset()</div> </section> </div> </div> </div> </section> </div> </div> <script src='assets/anchor.js'></script> <script src='assets/split.js'></script> <script src='assets/site.js'></script> </body> </html>