-
DOKUMENTACJA SYSTEMU
-
-
Dla użytkowników
-
-
- Business Intelligence
- Tworzenie raportu
- Uruchamianie reguły ręcznej dla wielu spraw
- Raporty BI - typ raportu "Planowanie zasobów"
- Operacje na raportach - rejestrowanie aktywności zmian w konfiguracji raportu
- Włączanie/wyłączanie możliwości eksportu danych do pliku Excel z poziomu raportu tabelarycznego
-
-
Dla twórców
-
-
- Interfejs systemu AMODIT - część 1, lista spraw, okno główne systemu
- Interfejs systemu AMODIT - część 2, formularz sprawy
- Interfejs systemu AMODIT - część 3, lista raportów
- Interfejs systemu AMODIT - część 4, raport
- Interfejs systemu AMODIT - część 5, użytkownicy
- Interfejs systemu AMODIT - część 6, grupy
- Interfejs systemu AMODIT - część 7, słowniki
- Interfejs systemu AMODIT - część 8, ustawienia systemowe
- Interfejs systemu AMODIT - część 9, logi systemowe
- Już nie wysyłamy, ale dodajemy komentarze :-)
- Ukrywanie na formularzu identyfikatora sprawy
-
-
-
- Przenoszenie definicji procesu miedzy środowiskami
- Unknown procedure
- Ustawienia procesu
- Źródło utworzenia sprawy
- Możliwość zablokowania edycji dokumentów z poziomu ustawień procesu
- Rejestrowanie zdarzeń związanych z podglądem lub pobieraniem dokumentów
- Częściowe wyłączenie wyszukiwania pełno tekstowego per proces
- Ukrywanie na formularzu identyfikatora sprawy
-
- Articles coming soon
-
-
- Dodawanie pól do formularza z poziomu sprawy
- Dodawanie pól na formularzu
- Dodawanie, usuwanie, przenoszenie pól na formularzu
- Graficzny edytor formularza
- Sekcja
- Rozróżnienie pól lub kolumn o takich samych nazwach podczas konfiguracji raportu
- Zmiana sposobu wyświetlania nazw technicznych i wyświetlanych pól w raportach w przypadku duplikatów nazw
- Silnik reguł - konstrukcja językowa [nazwa pola odnośnik].[nazwa pola]
- Brak możliwości zmiany typu pola na tabelaryczny
- Blokada edycji sekcji 3- lub 4-kolumnowych w edytorze graficznym formularza
-
-
- Blokowanie oraz zezwalanie na dodawanie plików z wybranymi rozszerzeniami
- Pole - Dokument
- Wydzielanie dokumentów
- Możliwość zablokowania edycji dokumentów z poziomu ustawień procesu
- TrustCenterSetSigningPeriod()
- GetAttachmentFromTemplate()
- ConvertFileToPDFEx()
- Parametr systemowy - "Path for files banned for security reasons"
- Maksymalny rozmiar pliku w AMODIT
-
-
-
- Język skryptowy reguł
- Pola systemowe dla każdej sprawy
- Reguła okresowa dla procesu
- Reguły tabeli
- Typy reguł biznesowych
- Tytuł sprawy
- Użycie parametrów w regułach
- Lista typów reguł procesu i opcji ich konfiguracji
- Jak sterować przepływem zdarzeń, korzystając z instrukcji warunkowej "if ... else ..."?
- Reguła okresowa według własnego harmonogramu
- How to disable a process rule from running
- Potwierdzenie wykonania reguły ręcznej
- Potwierdzenie wykonania reguły ręcznej - część 2
- Reguła okresowa dla procesu według własnego harmonogramu
-
-
- CallRest i CallWebSite
- ERP_GetDocumentExportStatus
- ExecuteSQL()
- FindUsersInAD()
- foreachobject
- GetSystemParameterValue
- GetUserDataFromAD
- GetXML
- Integracja z systemami bankowymi (przelewy masowe)
- JsonPath
- RemoteExecuteSQL()
- XmlDecode
- XmlEncode
- XPath
- GetJSON
- Function GetJSON() - how it works
- Integracja z usługą e-Doręczenia Poczty Polskiej
- Zewnętrzne źródła danych - typ połączenia "File"
- Eksport - import ustawień parametrów integracji z innymi systemami
- Połączenia nazwane do baz danych
- Zewnętrzne serwisy, z którymi łączy się AMODIT
- Integracja DocuSign z Amodit - Rozwiązanie dla Istniejących Użytkowników
- Integracja AMODIT z bazą adresową GUS TERYT
- Show all articles ( 8 ) Collapse Articles
-
- AttachmentsCount
- ConditionalGet
- ConditionalMax
- ConditionalMin
- ConditionalSetTableRowsSum
- ConditionalSum
- CountConnectedClosed
- CountConnectedOpen
- CountDocuments
- CountRows
- DateDiff
- DayDiff
- GetExchangeRate
- HourDiff
- IsNumber
- Max
- Min
- MonthDiff
- NextNumber()
- Round
- Sum
- ToNumber
- WorkDayDiff
- YearDiff
- Ograniczenie precyzji liczb w polach typu numerycznego
- RegisterNextNumber()
- FindAndRegisterNextNumber()
- FindNextNumberByDate()
- GetLastNumber()
- GetNumbersList()
- GetSortValue()
- RemoveCaseFromNextNumber()
- RemoveNextNumber()
- Renumerate()
- ResetNextNumber()
- Show all articles ( 20 ) Collapse Articles
-
- CheckOverlappingDates
- CurrentDateTime
- DateAdd
- DateDiff
- DatePart
- DateTime
- DayDiff
- DeleteDeadline
- HourDiff
- MonthDiff
- SendCalendarMessage()
- SetReminder
- Today
- WorkDayDiff
- YearDiff
- SetDateFilter()
- Show all articles ( 1 ) Collapse Articles
-
- AddTableRow
- CollapseSection
- CopyTableData
- CountRows
- DisableField
- DisableRow
- EnableField
- EnableRow
- ExpandSection
- FieldIsCorrect
- FieldIsIncorrect
- FieldIsNotRequired
- FieldIsRequired
- FieldOriginalValue
- FieldValueChanged
- FillFieldsFromString
- FillFromSkanujTo
- FillTableWithDictionary
- Get
- HideColumn
- HideField
- HideRow
- HideSection
- IsEmpty
- IsFormValid
- IsUniqueValue
- IsValidFieldValue
- NextNumber()
- RemoveTableRow
- SaveCase
- SendCasePrintMail
- Set
- SetDictionaryFilter
- SetFieldAlias
- SetFieldInfo
- SetListChoices
- SetReferenceFilter
- SetTemplate
- SetUserFieldSettings
- SetUserFilter
- ShowColumn
- ShowField
- ShowRow
- ShowSection
- SignCase
- SignField
- StartProgress
- StopProgress
- ToggleField
- ToggleSection
- SetAttachmentFieldSettings
- AddCasePrint
- Blokada edycji sekcji 3- lub 4-kolumnowych w edytorze graficznym formularza
- Show all articles ( 38 ) Collapse Articles
-
- AddTableRow
- ConditionalGet
- ConditionalSet
- CopyTableData
- CountRows
- DisableRow
- EnableRow
- FillTableWithDictionary
- foreachrow
- forrow
- Get
- GetFromPrevRow
- HideColumn
- HideField
- HideRow
- Max
- Min
- RemoveTableRow
- Set
- ShowColumn
- ShowRow
- SortTable
- Sum
- GetJsonFromCsv()
- Show all articles ( 9 ) Collapse Articles
-
- EndsWith
- foreachstring
- FormatValue
- GetAttachmentContent
- GetComments
- IndexOf
- IsNumber
- Length
- NextNumber()
- NumberToMoneyText
- RegExp
- ReplaceRegionalLetters
- StartsWith
- StringContains
- StringFormat
- StringReplace
- StripHTML
- Substring
- ToLower
- ToNumber
- ToUpper
- Trim
- Validate
- ValidatePLNIP
- XmlDecode
- XmlEncode
- XPath
- StringToBase64
- GetJsonFromCsv()
- Base64ToString()
- Char()
- Show all articles ( 16 ) Collapse Articles
-
- AddAttachmentFromTemplate
- AddBarcode
- AddFileToSharepoint
- AttachmentsCount
- Blokowanie oraz zezwalanie na dodawanie plików z wybranymi rozszerzeniami
- ChangeAttachmentName
- ConvertFileToPDF
- CountDocuments
- DeleteAttachment
- DeleteAttachmentFromOCR
- FillDataFromOCR
- FillFromSkanujTo
- GetAttachmentContent
- GetAttachmentData
- GetBarcodes
- GetDictionaryDescription
- GetOfficeOnlineServerLink
- GetQRcodes
- HideAllTemplates
- HideTemplate
- MergeFilesToPDF
- SendAttachmentToOCR
- SendMessageWithAttachments
- SetTemplate
- SetTemplateFileName
- ShowTemplate
- TrustCenterAddNewSigners
- TrustCenterCancelSigning
- TrustCenterCheckStatus
- TrustCenterFinishSigning
- TrustCenterGetSignedBy
- TrustCenterGetSignedDocument
- TrustCenterGetSigners
- TrustCenterSendToSign
- SetAttachmentFieldSettings
- Wydzielanie dokumentów
- MoveAttachmentToCase
- CopyAttachmentToCase
- GetExcelData()
- AddCasePrint
- AddFileToList
- CreateAttachmentFromBase64
- CreateZip
- DownloadFile
- ExtractPagesFromDocument
- ExportReportToExcel
- GetAttachmentFromTemplate()
- ConvertFileToPDFEx()
- Parametr systemowy - "Path for files banned for security reasons"
- Maksymalny rozmiar pliku w AMODIT
- AddAttachment
- AmoditGetAttachmentContent
- Show all articles ( 37 ) Collapse Articles
-
- Podpis elektroniczny AMODIT wpisany do rejestru NBP
- TrustCenterAddNewSigners
- TrustCenterCancelSigning
- TrustCenterCheckStatus
- TrustCenterFinishSigning
- TrustCenterGetSignedBy
- TrustCenterGetSignedDocument
- TrustCenterGetSigners
- TrustCenterSendToSign
- TrustCenterSetSigningPeriod()
- TrustCenterSendToSignEx()
- TrustCenterEditSignersEx()
- TrustCenterGetSignersData()
- Zewnętrzne serwisy, z którymi łączy się AMODIT
- Integracja DocuSign z Amodit - Rozwiązanie dla Istniejących Użytkowników
-
- AddComment
- AssignProcedure
- CancelSignature
- CaseCreator
- CaseForwarder
- CaseOwner
- CaseProcessingTime
- CaseStatusId
- ChangeDeadline
- ChangeStage
- CheckAllRequiredParams
- CloseCase
- CopyAndAssignCase
- CopyCase
- CreateCase()
- CurrentStage
- CurrentUser
- DeleteCase
- DeleteDeadline
- FieldIsCorrect
- FieldIsIncorrect
- FieldIsNotRequired
- FieldIsRequired
- FireRules
- forcase
- ForwardCase
- GetDeadline
- GrantTemporaryAccessToCase
- IsFormValid
- IsPrint
- MailHeaderValue
- RedirectToCase()
- RedirectToUrl()
- SaveCase
- SetReminder
- ShowMessage
- SignCase
- SignField
- TerminateTemporaryAccessToCase
- Potwierdzenie wykonania reguły ręcznej
- Confirm()
- Potwierdzenie wykonania reguły ręcznej - część 2
- Ustawianie przypomnienia
- AddCaseEvent
- Show all articles ( 29 ) Collapse Articles
-
- AddProfilerEvent
- CallFunction
- CallRest i CallWebSite
- ERP_GetDocumentExportStatus
- ERP_PutDocumentInBufor
- ExecuteSQL()
- GetSystemParameterValue
- GetXML
- RemoteExecuteSQL()
- WriteToSystemLog()
- GetJSON
- try {...} catch {...}
- AddNews
- Silnik reguł - konstrukcja językowa [nazwa pola odnośnik].[nazwa pola]
- Zewnętrzne źródła danych - typ połączenia "File"
- GetJsonFromCsv()
- Eksport - import ustawień parametrów integracji z innymi systemami
- Wyłączanie spraw z mechanizmu zastępstw
- CreateObject()
- AddObjectToList()
- RegisterNextNumber()
- FindAndRegisterNextNumber()
- FindNextNumberByDate()
- GetLastNumber()
- GetNumbersList()
- GetSortValue()
- RemoveCaseFromNextNumber()
- Wyłączenie niewykorzystywanych snipet’ów w edytorze reguł
- RemoveNextNumber()
- Renumerate()
- ResetNextNumber()
- Base64ToString()
- AddCaseEvent
- Show all articles ( 18 ) Collapse Articles
-
- AddCC
- AddCON
- AddUserToRole
- CaseCreator
- CaseForwarder
- CaseOwner
- ClearCC
- ClearCON
- CurrentUser
- FindUsersInAD()
- FullName
- GetAllUsers
- GetCC
- GetCON
- GetEmail
- GetExtOrganizationData
- GetManager
- GetManagers
- GetSubordinate
- GetUserData
- GetUserDataFromAD
- GetUsersFromRole
- GrantTemporaryAccessToCase
- IsCurrentUserOrDeputy
- IsDeputyOf
- IsGroupMember
- RemoveCC
- RemoveCON
- RemoveUserFromRole
- SetUserFilter
- UserIsExternal
- UsersOfGroup
- Przełączanie konta użytkownika
- Blokowanie edycji parametrów w profilu użytkownika
- AddUsersToGroup()
- RemoveUsersFromGroup()
- SetGroupMembers()
- Show all articles ( 22 ) Collapse Articles
-
-
- Raporty BI - typ raportu "Planowanie zasobów"
- Zewnętrzne źródła danych - typ połączenia "File"
- Operacje na raportach - rejestrowanie aktywności zmian w konfiguracji raportu
- Raporty BI - typ raportu "Tabela"
- Włączanie/wyłączanie możliwości eksportu danych do pliku Excel z poziomu raportu tabelarycznego
- Przekroczenie limitu ilości rekordów przy pobieraniu danych do pliku Excel z poziomu raportu
- Raporty BI - typ raportu "kanban"
- Raporty BI - typ raportu "treemap"
- Raporty BI - typ raportu kolumnowy pionowy lub poziomy
- Raporty BI - typ raportu pivot
- Raporty BI - typ raportu liniowy (wykres)
- Raporty BI - typ raportu kalendarz
- Raporty BI - typ raportu Gantt
-
- Articles coming soon
-
-
-
- Często zadawane pytania dotyczące tworzenia spraw na podstawie maila
- Dzielenie dokumentów przy pomocy kodów kreskowych
- Jak przygotować proces do współpracy z OCR skanuj.to?
- Konfigurowanie uruchamiania spraw na podstawie maila
- Zakładanie nowych spraw na podstawie maila lub skanu
- Zakładanie spraw na podstawie skanów i wypełnianie pól formularza danymi z tych skanów
- Źródło utworzenia sprawy
- Ustawienia poczty przychodzącej
-
- Dostęp tymczasowy
- Jak sterować przepływem zdarzeń, korzystając z instrukcji warunkowej "if ... else ..."?
- Przekazywanie sprawy wg reguł lub bez
- Reguły ręczne - przyciski akcji
- Sprawa zamknięta, dane na formularzu i działanie reguł
- Swobodne przekazywanie sprawy na kolejny etap
- Typy reguł biznesowych
- Lista typów reguł procesu i opcji ich konfiguracji
- Uruchamianie reguły ręcznej dla wielu spraw
- Potwierdzenie wykonania reguły ręcznej
- Confirm()
- Potwierdzenie wykonania reguły ręcznej - część 2
-
- Geolokalizacja
- Jak wyświetlić tylko część "czasu" w polu typu Data i czas ?
- Jak zmienić pole tekstowe w pole typu "password"
- Wydzielanie dokumentów
- Jak obsługiwane jest wysyłanie maili w AMODIT?
- Współpraca AMODIT z MS Excel
- Weryfikacja kontrahenta w Wykazie Podatnika VAT
- What to check when a text message/SMS does not come out from AMODIT
- Możliwość zablokowania edycji dokumentów z poziomu ustawień procesu
- Brak możliwości zmiany typu pola na tabelaryczny
- CreateObject()
- AddObjectToList()
- Przyciski akcji na formularzu sprawy - pole typu "Przyciski"
- Przełączanie konta użytkownika
- Częściowe wyłączenie wyszukiwania pełno tekstowego per proces
-
-
-
- Organizowanie zbierania podpisów
- Jak skonfigurować proces wysyłający dokumenty do podpisu?
- TrustCenterAddNewSigners
- TrustCenterCancelSigning
- TrustCenterCheckStatus
- TrustCenterFinishSigning
- TrustCenterGetSignedBy
- TrustCenterGetSignedDocument
- TrustCenterGetSigners
- TrustCenterSendToSign
- Integracja z podpisem kwalifikowanym SimplySign Certum by Asseco
- TrustCenterSetSigningPeriod()
- Integracja Autenti z Amodit - Rozwiązanie dla Polskich Organizacji
-
- Articles coming soon
-
-
Dla administratorów
-
- AMODIT w środowisku wielodomenowym
- Edycja danych użytkownika
- Organizacja zewnętrzna zapraszanie użytkowników
- Struktura organizacyjna
- Synchronizacja z Active Directory
- Uprawnienia w systemie AMODIT
- Użytkownicy
- Zakładanie konta użytkownika przez administratora
- Zakładanie nowej organizacji zewnętrznej
- Zarządzanie grupami użytkowników
- Zarządzanie kontem użytkownika
- Zastępstwa i nieobecności
- Zmiana hasła
- How to synchronize group members from an external source
- Parametr systemowy - EnableEditingDataOfSyncUsers
- Wyświetlanie adresu IP użytkownika
- Zdarzenia związane z logowaniem się użytkownika
- Przełączanie konta użytkownika
- Możliwość wyłączenia podstawowego obszaru "Wszystkie procesy"
- Blokowanie edycji parametrów w profilu użytkownika
- AddUsersToGroup()
- RemoveUsersFromGroup()
- SetGroupMembers()
- Show all articles ( 8 ) Collapse Articles
-
- Integracja ze skrzynką gmail
- Jak obsługiwane jest wysyłanie maili w AMODIT?
- Konfigurowanie uruchamiania spraw na podstawie maila
- Powiadomienia
- Ustawienia poczty przychodzącej
- Poczta przychodząca z outlook.office365.com
- Wyłączenie rejestrowania wpisów w tabeli usermail
- Parametr systemowy - "Path for files banned for security reasons"
- Link do logo organizacji wysyłanego w mailu
-
- Blokowanie oraz zezwalanie na dodawanie plików z wybranymi rozszerzeniami
- Ustawienia systemowe -Interfejs użytkownika
- Zarządzanie kodem licencyjnym w systemie AMODIT
- Logowanie się do systemu AMODIT (mechanizm podstawowy)
- Organizacja list procesów, raportów lub pozycji menu w kategorie (foldery) lub zakładki
- Parametry "User Profile Access" i "Manager Profile Access"
- Usługi
- Ustawienia systemowe - Ogólne
- Zadania
- Zezwalanie na wyświetlanie treści HTML w polach tekstowych
- What to check when a text message/SMS does not come out from AMODIT
- Antiforgery - ochrona przed atakami CSRF
- Parametr systemowy - EnableEditingDataOfSyncUsers
- Eksport - import ustawień parametrów integracji z innymi systemami
- Wyłączenie rejestrowania wpisów w tabeli usermail
- Konfiguracja wyszukiwania pełnotekstowego
- Logowanie z wykorzystaniem Multi Factor Authentication
- Połączenia nazwane do baz danych
- Przełączanie konta użytkownika
- Parametr systemowy - "Path for files banned for security reasons"
- Konfiguracja konta AppOnly w SharePoint
- Limity dynamicznych pól w systemie
- Show all articles ( 7 ) Collapse Articles
-
-
- Bezpieczeństwo systemu AMODIT - autoryzacja i autentykacja
- Bezpieczeństwo systemu AMODIT - zasady minimalnych uprawnień
- Logowanie się do systemu AMODIT (mechanizm podstawowy)
- Logowanie się do systemu AMODIT kontami m.in. Microsoft, Facebook, Google (mechanizmy dodatkowe)
- Parametry "User Profile Access" i "Manager Profile Access"
- Synchronizacja kont użytkowników z AzureAD
- Synchronizacja z Active Directory
- Uprawnienia w systemie AMODIT
- Parametr systemowy - EnableEditingDataOfSyncUsers
- Wyświetlanie adresu IP użytkownika
- Zdarzenia związane z logowaniem się użytkownika
- Logowanie z wykorzystaniem Multi Factor Authentication
- Przełączanie konta użytkownika
- Możliwość wyłączenia podstawowego obszaru "Wszystkie procesy"
- Blokowanie edycji parametrów w profilu użytkownika
- Konto SYSTEM USER w AMODIT
- Show all articles ( 1 ) Collapse Articles
-
- Blokowanie oraz zezwalanie na dodawanie plików z wybranymi rozszerzeniami
- Dodatkowe zabezpieczenia aplikacji webowej AMODIT
- Zezwalanie na wyświetlanie treści HTML w polach tekstowych
- Skanowanie antywirusowe wgrywanych dokumentów
- Antiforgery - ochrona przed atakami CSRF
- Logowanie z wykorzystaniem Multi Factor Authentication
- Parametr systemowy - "Path for files banned for security reasons"
-
- "Łagodne" kończenie zadań w momencie zatrzymywania usługi AMODAsynchronousService
- 4Eyes rule
- Bezpieczeństwo systemu AMODIT na etapie projektowania i tworzenia rozwiązań
- Monitor wydajności systemu AMODIT
- Transparentność w systemie AMODIT
- Uprawnienia w systemie AMODIT
- Systemowe źródła danych
- Raporty systemowe
- How to set up access levels to AMODIT WebAPI
- Operacje na raportach - rejestrowanie aktywności zmian w konfiguracji raportu
- Wyświetlanie adresu IP użytkownika
- Wyłączenie rejestrowania wpisów w tabeli usermail
- Logowanie z wykorzystaniem Multi Factor Authentication
- Połączenia nazwane do baz danych
- Rejestrowanie zdarzeń związanych z podglądem lub pobieraniem dokumentów
- Częściowe wyłączenie wyszukiwania pełno tekstowego per proces
- Zewnętrzne serwisy, z którymi łączy się AMODIT
- Włączanie/wyłączanie możliwości eksportu danych do pliku Excel z poziomu raportu tabelarycznego
- Przekroczenie limitu ilości rekordów przy pobieraniu danych do pliku Excel z poziomu raportu
- Maksymalny rozmiar pliku w AMODIT
- Link do logo organizacji wysyłanego w mailu
- Show all articles ( 6 ) Collapse Articles
-
-
-
Dla integratorów
-
- CallRest i CallWebSite
- Excel jako zewnętrzne źródło danych
- Excel jako źródło danych dla słownika zewnętrznego
- Integracja z bazą VIES (Potwierdzenie numeru VAT)
- Integracja z Krajowym Systemem e-Faktur poprzez KSeF Connector
- Integracja z systemami bankowymi (przelewy masowe)
- Moduł e-Nadawca w AMODIT
- Wymiana danych z systemami zewnętrznymi
- Źródło utworzenia sprawy
- Integracja z podpisem kwalifikowanym SimplySign Certum by Asseco
- Integracja z firmą kurierską FEDEX
- Integracja z firmą kurierską DHL
- Bankowe przelewy zagraniczne
- Zestawienie integracji dostępnych w AMODIT
- What to check when a text message/SMS does not come out from AMODIT
- Integracja z usługą e-Doręczenia Poczty Polskiej
- Zewnętrzne źródła danych - typ połączenia "File"
- Eksport - import ustawień parametrów integracji z innymi systemami
- Zewnętrzne serwisy, z którymi łączy się AMODIT
- Konfiguracja konta AppOnly w SharePoint
- Integracja DocuSign z Amodit - Rozwiązanie dla Istniejących Użytkowników
- Integracja Autenti z Amodit - Rozwiązanie dla Polskich Organizacji
- Integracja AMODIT z Google Workspace
- Show all articles ( 8 ) Collapse Articles
-
Dla instalatorów
-
- Aktualne wersje
- Ile serwerów jest potrzebnych?
- Zarządzanie kodem licencyjnym w systemie AMODIT
- Konfiguracja kluczowych parametrów
- Procedury aktualizacji komponentów serwerów Windows i bazy danych, tzw. certyfikacja OS
- Przygotowanie serwera aplikacyjnego do instalacji
- Przygotowanie serwera bazy danych do instalacji
- Wirtualizacja serwerów
- Zalecane parametry serwerów
- Instalacja Platformy AMODIT
- Problemy po instalacji usługi AMODITAsynchronousService
- Konfiguracja wyszukiwania pełnotekstowego
- Połączenia nazwane do baz danych
- Zewnętrzne serwisy, z którymi łączy się AMODIT
- Maksymalny rozmiar pliku w AMODIT
-
- Aktualizacja Platformy AMODIT i .NET FRAMEWORK
- Aktualizowanie Platformy AMODIT
- Aktualne wersje
- Procedury aktualizacji komponentów serwerów Windows i bazy danych, tzw. certyfikacja OS
- Problemy po instalacji usługi AMODITAsynchronousService
- Eksport - import ustawień parametrów integracji z innymi systemami
- Konfiguracja wyszukiwania pełnotekstowego
- Maksymalny rozmiar pliku w AMODIT
-
- Header Content Security Policy
- Konfiguracja farmy serwerów frontend AMODIT
- Konfiguracja środowiska testowego i produkcyjnego na jednym serwerze aplikacyjnym
- Odbudowa indeksu wyszukiwania pełnotekstowego Lucene
- Eksport - import ustawień parametrów integracji z innymi systemami
- Przekroczenie limitu ilości rekordów przy pobieraniu danych do pliku Excel z poziomu raportu
- Konfiguracja konta AppOnly w SharePoint
-
-
Do uporządkowania
- Mapa rozwoju AMODIT TrustCenter
- Lista zmian w aplikacji SignApp
- Jak ponownie wysłać maila do osoby podpisującej dokument w systemie Trust Center
-
- Dezaktywacja baz AMODIT na chmurze
- Historia zmian Platformy AMODIT
- Lista artykułów na wiki - nowości lub aktualizacje
-
- OCR w AMODIT
- Automatyczne odczytywanie danych z faktur (OCR)
- Kody kreskowe - generowanie i odczytywanie
- Obsługa zastępstw w AMODIT
- Integracja z systemami bankowymi (przelewy masowe)
- Business Intelligence
- Podpisywanie dokumentów w systemie AMODIT z wykorzystaniem podpisu kwalifikowanego
- Instalacja programu Amodit SignApp
-
- Articles coming soon
Jak obsłużyć hierarchię słowników ze środkowym poziomem liczącym tysiące dynamicznie zmieniających się pozycji
Wprowadzenie: Kiedy prosta hierarchia to za mało
W codziennej pracy z systemem AMODIT często spotykamy się z potrzebą tworzenia zależności między polami. Najprostszym i najczęstszym rozwiązaniem są słowniki hierarchiczne, gdzie wybór w jednym polu filtruje dostępne opcje w kolejnym. To idealne narzędzie do odwzorowania struktur takich jak Kategoria -> Podkategoria czy Województwo -> Powiat.
Jednak co w sytuacji, gdy stajemy przed znacznie bardziej złożonym wyzwaniem biznesowym? Co zrobić, gdy w środku naszej hierarchii musimy dać użytkownikowi możliwość wyboru jednego elementu z listy liczącej tysiące pozycji – na przykład konkretnego zlecenia produkcyjnego, numeru umowy, środka trwałego, polisy ubezpieczeniowej czy dowolnego innego obiektu liczącego wiele pozycji i do tego, który może zmieniać się w czasie?
Standardowa hierarchia zawiedzie, prowadząc do „eksplozji danych” i problemów z wydajnością. Rozwiązaniem tego problemu jest mechanizm potocznie nazywany „słownikiem zagnieżdżonym”. Jest to unikalne połączenie prostej konfiguracji słownika hierarchicznego ze specjalnym, dynamicznym zachowaniem interfejsu użytkownika. Ten artykuł wyjaśni krok po kroku, jak to działa i kiedy warto z niego korzystać.
Część 1: Fundament – Jak skonfigurowany jest „Słownik hierarchiczny”?
Zanim przejdziemy do „magii”, spójrzmy na fundament. Jak widać na zrzutach z konfiguracji, u podstaw leży wykorzystanie połączonych słowników czyli tzw słownik hierarchiczny.
- Mamy pole poz1 i poz2.
- W definicji formularza, pole poz2 jest zdefiniowane jako podrzędne względem poz1 (Słownik nadrzędny: poz1).
- W zawartości słownika dla poz2, każda pozycja ma przypisaną kategorię, która odpowiada wartości z poz1.
Gdy w poz1 wybierzemy Pozycja 1, pole poz2 automatycznie pokaże tylko te rekordy, których kategoria odpowiada temu wyborowi.
Część 2: Przełom – Czym jest i jak działa „Słownik zagnieżdżony”?
„Słownik zagnieżdżony” to nie jest inny typ słownika w bazie danych. To specjalne zachowanie interfejsu użytkownika, które jest uruchamiane, gdy w polu nadrzędnym (poz1) zostanie wybrana wartość o specjalnym formacie – rozpoczynająca się od znaku # (hash).
Mechanizm działania krok po kroku:
-
Wybór „Znacznika” w poz1: Użytkownik na formularzu klika w pole poz1. Oprócz zwykłych pozycji (Pozycja 1), widzi specjalne „znaczniki”, np. #Zlecenia czy #Umowy. Użytkownik wybiera jeden z nich, np. #Zlecenia.
-
Dynamiczne Wstawienie Pola: System AMODIT wykrywa znak # w wybranej wartości i wykonuje następujące kroki:
- Sprawdza czy istnieje w AMODIT słownik zewnętrzny o tej nazwie, oczywiście bez znaku #, czyli np. słownik o nazwie Zlecenia
- Jeśli istnieje to, pokazuje drugie pole bezpośrednio pod polem słownika.
-
Wybór konkretnej Instancji: To nowo wstawione pole jest automatycznie wypełniane zawartością słownika o nazwie odpowiadającej znacznikowi (w tym przypadku słownika „Zlecenia”). Użytkownik widzi teraz długą, płaską listę konkretnych zleceń i może wybrać z niej poszukiwaną pozycję.
-
Kontynuacja hierarchii w poz2: , System aktywuje pole poz2. Zostaje ono przefiltrowane na podstawie wartości wybranej w poz1, czyli #Zlecenia. Użytkownik widzi więc podkategorie zdefiniowane dla zleceń (np. Koszty osobowe zlecenia, Koszty dodatkowe zlecenia).
Ważne wymaganie techniczne: Słowniki używane jako „słowniki obiektów” (np. Zlecenia, Umowy, Maszyny) MUSZĄ być skonfigurowane jako słowniki zewnętrzne. To wymaganie systemu dla prawidłowego funkcjonowania mechanizmu dynamicznego ładowania.
Przykład praktyczny z dekretacji kosztów
Scenariusz: Firma ma obieg do dekretacji kosztów, gdzie każdy koszt musi być przypisany do obiektu (zlecenie/projekt/maszyna) i następnie skategoryzowany.
- Pole Rodzaj kosztu: Użytkownik wybiera #Zlecenia
- Dynamicznie pojawia się pole „Wybór zlecenia” z listą wszystkich aktywnych zleceń produkcyjnych
- Użytkownik wybiera „Zlecenie 2024/001 – Produkcja okien PVC”
- Pole Kategoria kosztu pokazuje opcje: „Materiały”, „Robocizna”, „Narzędzia” (te same dla wszystkich zleceń)
Dlaczego to podejście jest tak skuteczne?
Ten mechanizm w elegancki sposób rozwiązuje problem, rozdzielając proces wyboru na dwa etapy:
- Wybór typu/kontekstu obiektu: Użytkownik najpierw decyduje, czy chce przypisać koszt do zlecenia, umowy czy maszyny (wybór w poz1).
- Wybór konkretnej instancji obiektu: Następnie, w dedykowanym do tego, dodatkowym polu, wybiera konkretny numer zlecenia z tysięcy dostępnych.
Dzięki temu interfejs użytkownika pozostaje czysty i wydajny, a konfiguracja w backendzie jest prosta i opiera się na standardowym mechanizmie hierarchii.
Ograniczenia i wymagania techniczne
- Słowniki zagnieżdżone: Muszą być skonfigurowane jako słowniki zewnętrzne
- Struktura: Mechanizm obsługuje tylko 2-poziomową strukturę ( pole słownika → dynamiczne pole do wyboru obiektu), ale jednocześnie nie ogranicza poziomów hierarchii słowników
- Wydajność: Słowniki z tysiącami pozycji ładują się asynchronicznie, co może powodować krótkie opóźnienia
Kiedy powinieneś użyć słownika zagnieżdżonego? (Checklista dla wdrożeniowca)
Pomyśl o tym rozwiązaniu, gdy w analizie problemu klienta pojawiają się następujące sygnały:
- W jednym miejscu procesu użytkownik musi najpierw określić typ obiektu (zlecenie, projekt, umowa), a następnie wybrać konkretny egzemplarz z bardzo długiej, płaskiej listy.
- Chcesz uniknąć sytuacji, w której jedno pole wyboru zawiera jednocześnie kategorie hierarchiczne i tysiące konkretnych pozycji, co byłoby koszmarem z punktu widzenia UX.
- Potrzebujesz, aby po wyborze konkretnego obiektu z dużej listy, dalsze kroki w formularzu następowały według standardowej ścieżki (np. kategorie kosztów są takie same dla wszystkich zleceń).
- Zależy Ci na prostocie konfiguracji (wykorzystanie standardowej hierarchii) przy jednoczesnym uzyskaniu zaawansowanego, dynamicznego zachowania na formularzu.
Podsumowanie
„Słownik zagnieżdżony” to sprytny hack UI który na bazie standardowej hierarchii tworzy wrażenie inteligentnego „wstrzykiwania” pól. W rzeczywistości to elegancka kombinacja dwóch mechanizmów: wykrywania wzorca #nazwa oraz dynamicznego ładowania zawartości drugiego pola wyboru.
Ten mechanizm to doskonały przykład jak właściwy projekt UX może rozwiązać problem skalowalności bez komplikowania architektury systemu. Dla wdrożeniowca to potężne narzędzie pozwalające zbudować intuicyjny interfejs dla najbardziej wymagających scenariuszy biznesowych.