Skip Navigation LinksALVAO 11.0Release NotesUpgrade z předchozích verzíUpgrade z ALVAO 10.4 – manuální kroky Skip Navigation Links.


Upgrade z ALVAO 10.4 – manuální kroky

Custom Apps

Při upgrade z verze ALVAO 10.4 je třeba upravit existující programová rozšíření, viz ALVAO Asset Management Custom Apps resp. ALVAO Service Desk Custom Apps. Zdrojové soubory a skripty upravte podle postupu uvedeného na této stránce. Pokud upgradujete z verze ALVAO 10.3 nebo starší, nejprve vlastní rozšíření převeďte na verzi ALVAO 10.4.

  1. Převeďte vaše stávající úpravy ze složky App_Code v instalaci SD WS do agendy Aplikace podle následujícího postupu:
    1. V sekci Správa – Aplikace vytvořte vhodnou strukturu aplikací.
      Poznámka:
      Aplikace jsou součástí modulu ALVAO Service Desk Custom Apps.
    2. V aplikaci vytvořte pro každý přenášený soubor nový skript s šablonou:
      • Prázdná, pokud přenášíte soubor s implementací jednoho z typů rozšíření (např. soubor obsahující třídu implementující ITicketAutoAction).
      • Knihovna tříd, pokud přenášíte soubor s pomocnými třídami (např. soubor Settings obsahující názvy služeb používané v rozšířeních).
    3. Do skriptu vložte obsah přenášeného souboru.
    4. using System.Web.WebServices;
      nahraďte za:
      using Alvao.Apps.WebService;
  2. Automatické akce na základě změny události – používáte-li v automatických akcích sloupec tActHd.bActHdUserRead, je potřeba jej změnit na tAct.UserRead.
  3. Vlastní funkce pro výběr osoby - Používáte-li vlastní proceduru spPersonSearch-Custom2, přidejte do ní nové parametry @onlyCustomizableUsers a @rightLimitationPersonId. Doporučujeme zkopírovat definici výchozí implementace spPersonSearch a do ní znovu zanést vlastní úpravy.
  4. Používáte-li tabulku ve vlastním formuláři, odstraňte z ní metody DefaultAction() a Actions(), pokud je máte implementovány.
  5. Odstraňte použití metody scope.Open().
  6. ALVAO Standard HW/SW Request Forms - vlastní formulář žádosti o HW
    Nová šablona se nachází ve složce Templates/StandardHwSwRequestForm. Ve stávajícím kódu cs souboru, který vychází z Code/StandardHwSwRequestForm-Hw-NewTicket.cs, nahraďte následující řádky:
    TicketBody += properties["ItemName"];
    TicketBody += "\nCena: " + properties["Cena"];

    za tento kód:
    object itemName;
    properties.TryGetValue("ItemName", out itemName);
    TicketBody += itemName;

    object price;
    properties.TryGetValue("Cena", out price);
    TicketBody += "\nCena: " + price;
  7. Používáte-li ve vlastních formulářích některou z metod Alvao.API uvedenou ve sloupci A10.4, nahraďte ji příslušnou metodou ze sloupce A11.0.
    A10.4 A11.0
    AM.ImportCsv.RunImportCsv AM.ImportCsv.Run
    AM.Object.CreateObject AM.Object.Create
    AM.Object.CopyObject AM.Object.Copy
    AM.Object.DeleteObject AM.Object.Delete
    AM.Object.MoveObject AM.Object.Move
    AM.Object.GetObjectById AM.Object.GetById
    AM.ObjectProperty.UpdateProperties AM.ObjectProperty.Update
    Common.Email.QueueMailMessage Common.Email.Queue
    Common.Person.GetPersonById Common.Person.GetById
    Common.Person.GetPersonByEmail Common.Person.GetByEmail
    Common.Person.GetPersonCultureInfoOrDefault Common.Person.GetCultureInfoOrDefault
    SD.Message.SendMessage SD.Message.Send
    SD.Sections.MoveSections SD.Sections.Move
    SD.Sections.CopySections SD.Sections.Copy
    SD.Sections.ReplaceSectionsRights SD.Sections.ReplaceRights
    SD.Sections.ReplaceSectionsSlaRights SD.Sections.ReplaceSlaRights
    SD.Sections.GetSectionOnlySolverId SD.Sections.GetOnlySolverId
    SD.Sections.ExportSections SD.Sections.Export
    SD.Sections.ValidateSectionsBeforeImport SD.Sections.ValidateBeforeImport
    SD.Sections.ImportSections SD.Sections.Import
  8. Položka enumerátoru ObjectClass.Code.Store z Alvao.API (Alvao.API.AM.Model.ObjectClass.Code.Store) byla přejmenována na Alvao.API.AM.Model.ObjectClass.Code.Warehouse.
  9. Datábázová procedura spMoveNode nově vyžaduje vyplnit hodnotu v parametru person.
  10. Odstraňte použití metody Alvao.Apps.AppsConfig.ConnectionProvider.SetApiContext.
  11. Do další verze ALVAO (vydání duben 2023) bude SD WS zrušena. Ve vlastních formulářích a aplikacích doporučujeme nahradit metody SD WS odpovídajícími metodami z Alvao.API:
    SD WS ALVAO.API
    AddPersonToGroupAlvao.API.Common.Person.AddToGroup()
    AssignTicketToSolverAlvao.API.SD.Ticket.ChangeSolver()
    CreateActAlvao.API.SD.Act.Create()
    CreateGroupAlvao.API.Common.Role.Create()
    CreatePersonAlvao.API.Common.Person.Create()
    CreateTicketAlvao.API.SD.Ticket.Create()
    CreateTicketRelation Alvao.API.SD.Relation.Create()
    DeleteGroupAlvao.API.Common.Role.Delete()
    FindPersončástečně Alvao.API.Common.Person.GetByEmail, nebo db procedura spPersonSearch()
    GetAzureApplicationOptionsAlvao.API.DbProperty.AzureApplicationId
    GetGroupListAlvao.API.Common.Role.GetAll()
    GetPersonGroupList Alvao.API.Common.Person.GetGroupMembership()
    GetServiceDeskPortalUrlAlvao.API.Common.DbProperty.WebAppUrl
    IsActivatedAlvao.API.Activation.IsModuleActivated()
    IsExistingTicketAlvao.API.SD.Ticket.GetById()
    IsPersonMemberOfGroupAlvao.API.Common.Person.IsMemberOfGroup()
    LogAuditRecordAlvao.API.Common.AuditLog.LogAuditRecord()
    ReadColumnAlvao.API.Common.Database.ReadColumn()
    RemovePersonFromGroupAlvao.API.Common.Person.RemoveFromGroup()
    ResolveTicketAlvao.API.SD.Ticket.Resolve()
    SetTicketStateAlvao.API.SD.Ticket.ChangeState()
    WriteColumnAlvao.API.Common.Database.WriteColumn()

    Např.: sdws.ReadColumn(recordId, tableName, columnName);
    nahraďte za
    Alvao.API.Common.Database.ReadColumn(recordId, tableName, columnName);

    sdws.WriteColumn(recordId, tableName, columnName, newValue);
    nahraďte za
    Alvao.API.Common.Database.WriteColumn(recordId, tableName, columnName, newValue);


    V integracích s externími systémy doporučujeme nahradit metody SD WS odpovídajícími metodami z Service Desk Enterprise API:

    SD WS SD Enterprise API
    AssignTicketToSolverPUT tickets/{ticketId}/solver
    CreateActPOST tickets/{ticketId}/log
    CreateTicketPOST tickets
    CreateTicketRelationPOST tickets/{ticketId}/links
    FindPersonGET users?$search={person|name}
    GetAzureApplicationOptionsGET systemSettings
    GetPersonListGET users
    GetPersonNameFromMailGET users?$filter=email eq '{email}'
    GetServiceDeskPortalUrlGET systemSettings
    GetTicketActListGET tickets/{ticketId}/log
    GetTicketByMessageTagGET tickets/GetIdFromText(text='{text}')
    GetTicketListGET tickets
    GetWebServiceVersionGET /
    IsExistingTicketGET tickets/{ticketId}
    ResolveTicketPUT tickets/{ticketId}/state
    SetTicketStatePUT tickets/{ticketId}/state

    Pozn.: Metody SD WS, které nejsou v tabulce uvedeny, budou mít náhradu až v další verzi ALVAO (vydání duben 2023).

  12. Pokud v Aplikacích používáte databázové transakce, aplikujte nová doporučení. (T124214ALVAO)

Vlastní šablony tiskových sestav

Vlastní šablony tiskových sestav přepište na podporovanou verzi XSL následovně:

Původní konstrukce Nová konstrukce
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:script>...</xsl:script> -
<xsl:if test="context()[not(end())]"> <xsl:if test="position()!=last()">
<xsl:for-each select="xxx" order-by="yyy,zzz"> <xsl:for-each select="xxx">
  <xsl:sort select="yyy" />
  <xsl:sort select="zzz" />
<xsl:if test=".[value!='']"> <xsl:if test="value!=''">
<xsl:when test=".[not(proplist/prop[kind='xxx']) and proplist/prop[kind='yyy']]"> <xsl:when test="not(proplist/prop[kind='xxx']) and proplist/prop[kind='yyy']">
<xsl:apply-templates select="ancestor(node[classid='x'])/nodelist"/> <xsl:apply-templates select="ancestor::node[classid='x']/nodelist"/>
<xsl:apply-templates select="xxx" order-by="yyy" /> <xsl:apply-templates select="xxx">
  <xsl:sort select="yyy" />
</xsl:apply-templates>

 

Nenašli jste co jste hledali? Zeptejte se našeho týmu technické podpory.