OBS. For de fleste former for formularlogik i model-driven apps er normale form scripts den anbefalede tilgang. Dette framework giver primært mening, hvis målet specifikt er at undgå form scripts.
Business Rule Extension Framework

Business Rules der når hele formularen.

Udvid standard Business Rules, så de kan styre faner, sektioner, multi-selects, subgrids og timelines uden JavaScript pr. tabel.

Det kan frameworket

Et globalt framework, der lader Business Rules styre formularens UI på tværs.

Tabs + sections

Hide or show tabs and sections across main forms.

Multi-select control

Hide, show, lock, or require multi-select choices.

Subgrids + timeline

Hide or show subgrids and timelines.

Global rækkevidde

Én managed solution kører på alle main forms.

Download løsningen

Sådan bruger du det

Følg opsætningen, byg kommandostrengen og hold reglerne forudsigelige med best practices.

Opret Business Rule

Importér BusinessRuleExtensions_v1_Managed.zip og publish all customizations, før du starter.

1

Opret triggerfeltet

Tilføj en single line text-kolonne, hvor det logiske navn slutter på brextension (fx new_brextension).

Anbefalet længde: 100-200 tegn. Tilføj en beskrivelse, så formålet er tydeligt senere.
2

Tilføj det til formularen (skjult)

Placér feltet på main form og skjul det.

Frameworket kører kun, hvis feltet findes på formularens body.
3

Byg Business Rule

Brug Set Field Value til at skrive kommandostrengenHIDE:FLD:new_multiselectoptions ind i brextension-feltet.

Tilføj eksplicit ELSE-logik for at fortryde handlinger.
Business Rule Extension Framework

Command Studio

Byg command strings, som lader standard Business Rules bruge HIDE/SHOW på tabs, sections, subgrids og timelines samt LOCK/REQ på multi-select fields.

Kommandosyntaks
ACTION:TYPE:LOGICAL_NAME
Flere kommandoer adskilles med komma.

Actions

  • HIDEMake the element invisible.
  • SHOWBring the element into view.
  • LOCKForce read-only on a field.
  • UNLOCKReturn a field to editable.
  • REQBusiness required (red asterisk).
  • OPTRemove business required state.

Targets

  • FLDFields, subgrids, timelines.
  • TABForm tabs (name, not label).
  • SECSections (name, not label).

Eksempler

HIDE:FLD:new_multiselectoptionsLOCK:FLD:emailaddress1HIDE:TAB:tab_detailsHIDE:SEC:general_section_1HIDE:TAB:tab_3, SHOW:FLD:mobilephone, REQ:FLD:mobilephone

Builder

Vælg en handling, vælg måltypen, og skriv det logiske navn eller kontrolnavnet.

Aktuel kommandoHIDE:FLD:your_name_here

Best practices

Hold regler eksplicitte og forudsigelige, så flere administratorer kan vedligeholde dem.

Opdel regler efter formål

Opret separate brextension-felter til synlighed, låsning og required-logik.

Eksplicit ELSE

Sæt altid den modsatte handling i ELSE-grenen; et tomt felt gør ikke noget i sig selv.

Sidste opdatering vinder

Hvis to felter styrer samme element, vinder den seneste opdatering.

Quick Create FormsKræver manuel library-opsætning

Quick Create Forms kræver manuel library-opsætning, fordi den globale ribbon ikke indlæses pålideligt.

  1. Tilføj brextension-feltet til Quick Create Forms body.
  2. Form properties -> tilføj asgerj_BRExtender.js, OnLoad: BRExtension.init (send execution context).
  3. Sæt Business Rule scope til Entity eller All Forms.
Sådan virker detArkitekturdetaljer

Frameworket bruger et globalt injection-mønster til at lytte efter kommandoer på alle main forms.

Global ribbon injection

En usynlig global command bar-knap initialiserer scriptet på alle tabeller.

Proxy trigger-felter

Scriptet finder tekstfelter, der slutter på brextension, og overvåger dem.

Heartbeat monitor

Hvert sekund tjekker det for ændringer og kører nye kommandoer med det samme.

Ingen idle-belastning

Hvis formularen ikke har et triggerfelt, stopper frameworket med det samme.

FejlsøgningschecklisteTypiske opsætningsfejl

Hvis kommandoer ikke kører, så verificér de grundlæggende ting før dybere fejlsøgning.

  • Brug det logiske navn (tab_3), ikke labelen (Summary).
  • Bekræft at brextension-feltet ligger på formularens body.
  • Aktivér Business Rule og sæt scope til Entity eller All Forms.
  • Ingen mellemrum i keywords: HIDE:TAB er korrekt; HIDE : TAB er forkert.