<?xml version="1.0" encoding="utf-8"?>
<ManualTopic ID="/baanerp/tt/EnterpriseStudio/onlinemanual/4gl_engine" xml:lang="en" TopicType="Overview">
	<Header>
		<Title xmlns:HTML="http://www.w3.org/TR/REC-html40">4GL Engine</Title>
		<Keyword ContextSensitive="No"><Level1>
                                    Infor ERP LN Development Tools
                                 </Level1>
			<Level2>4GL Engine</Level2>
		</Keyword>
	</Header>
	<GeneralSection><Paragraph class="Default">The <Link href="/baanerp/tt/glossary/glossary#100092" role="glossary">4GL engine</Link> handles the default behavior of a session. If additional functionality is needed or default functionality needs to be by-passed, this should be programmed in a UI script (Program script).</Paragraph>
	</GeneralSection>
	<GeneralSection><Paragraph class="Default">When a session is started, the session’s object will run. The object and the form work together to perform queries and present data on the form.</Paragraph>
		<ProcedureList><ListIntro>The sequence of actions that take place are:</ListIntro>
			<ListItem>The object allocates memory space for a record buffer based on the table definition.</ListItem>
			<ListItem>The object builds a SQL statement to select rows from the main table and related tables. The record buffer is populated within a selectdo loop.</ListItem>
			<ListItem>The record buffer variables are updated after the query and are available for use on forms.</ListItem>
			<ListItem>The form fields are mapped to the record buffer and display on the form.</ListItem>
		</ProcedureList>
		<Paragraph class="Default">This sequence of actions is an overview of the actions that take place within a session. The detailed actions are coded. The 4GL Engine (also called the standard program) provides this standardized coding and enforces consistency across sessions in the system.</Paragraph>
		<List><ListIntro>The 4GL Engine controls the processing of a session:</ListIntro>
			<ListItem>The session startup including checking for authorizations, loading icons and pull-down menus.</ListItem>
			<ListItem>Loading the forms, reports, and charts.</ListItem>
			<ListItem>Performing queries on the main table for the user’s company, which includes selects, inserts, updates, and deletes.</ListItem>
			<ListItem>Scrolling through data selections.</ListItem>
			<ListItem>Checking that a reference to another table exists, such as checking that a Department exists for an Employee.</ListItem>
			<ListItem>Handling the right forms, labels, and menus for a user’s language.</ListItem>
			<ListItem>Choose the device for output.</ListItem>
		</List>
		<Note><SectionTitle>
                                    Note
                                 </SectionTitle>
			<Paragraph class="Default">The exceptions to the normal processing are contained in the Session Object. The session object uses events to hook into the 4GL Engine, and describe the actions that should happen as a result of an event. These additional actions are defined in the UI script (program script). For more information, refer to the <Link href="/baanerp/tt/EnterpriseStudio/onlinemanual/ui_scripts" role="manual">UI scripts</Link> section.</Paragraph>
		</Note>
	</GeneralSection>
</ManualTopic>
