[{"data":1,"prerenderedAt":695},["ShallowReactive",2],{"docs-sopm-referenz-en":3},{"id":4,"title":5,"body":6,"category":685,"description":686,"draft":687,"extension":688,"meta":689,"navigation":583,"order":690,"path":691,"seo":692,"stem":693,"__hash__":694},"docsEn\u002Fdocs\u002Fsopm-referenz.md",".sopm Reference",{"type":7,"value":8,"toc":675},"minimark",[9,13,26,31,84,87,91,220,227,230,268,281,287,295,367,371,419,436,440,623,651,655,671],[10,11,5],"h1",{"id":12},"sopm-reference",[14,15,16,17,21,22,25],"p",{},"The ",[18,19,20],"code",{},".sopm"," (Source OPM) is the XML source file of a package. The ",[18,23,24],{},".opm"," file is generated from it during the build process. This reference describes the most common elements.",[27,28,30],"h2",{"id":29},"root-element","Root Element",[32,33,34,50],"table",{},[35,36,37],"thead",{},[38,39,40,45,47],"tr",{},[41,42,44],"th",{"align":43},"left","Fork",[41,46,30],{"align":43},[41,48,49],{"align":43},"Example",[51,52,53,69],"tbody",{},[38,54,55,59,64],{},[56,57,58],"td",{"align":43},"OTOBO",[56,60,61],{"align":43},[18,62,63],{},"otobo_package",[56,65,66],{"align":43},[18,67,68],{},"\u003Cotobo_package version=\"1.1\">",[38,70,71,74,79],{},[56,72,73],{"align":43},"Znuny \u002F OTRS CE",[56,75,76],{"align":43},[18,77,78],{},"otrs_package",[56,80,81],{"align":43},[18,82,83],{},"\u003Cotrs_package version=\"1.0\">",[14,85,86],{},"The content is otherwise identical, which is why a package is usually portable across forks.",[27,88,90],{"id":89},"required-elements","Required Elements",[92,93,98],"pre",{"className":94,"code":95,"language":96,"meta":97,"style":97},"language-xml shiki shiki-themes one-dark-pro","\u003CName>MyPackage\u003C\u002FName>                 \u003C!-- CamelCase, no spaces -->\n\u003CVersion>1.0.0\u003C\u002FVersion>               \u003C!-- major.minor.patch -->\n\u003CFramework>11.0.x\u003C\u002FFramework>          \u003C!-- at least one, format major.minor.x -->\n\u003CVendor>Example GmbH\u003C\u002FVendor>\n\u003CLicense>GPL-3.0\u003C\u002FLicense>\n\u003CDescription Lang=\"en\">...\u003C\u002FDescription>\n","xml","",[18,99,100,125,144,163,179,194],{"__ignoreMap":97},[101,102,105,109,113,116,118,121],"span",{"class":103,"line":104},"line",1,[101,106,108],{"class":107},"sn6KH","\u003C",[101,110,112],{"class":111},"sVyAn","Name",[101,114,115],{"class":107},">MyPackage\u003C\u002F",[101,117,112],{"class":111},[101,119,120],{"class":107},">                 ",[101,122,124],{"class":123},"sV9Aq","\u003C!-- CamelCase, no spaces -->\n",[101,126,128,130,133,136,138,141],{"class":103,"line":127},2,[101,129,108],{"class":107},[101,131,132],{"class":111},"Version",[101,134,135],{"class":107},">1.0.0\u003C\u002F",[101,137,132],{"class":111},[101,139,140],{"class":107},">               ",[101,142,143],{"class":123},"\u003C!-- major.minor.patch -->\n",[101,145,147,149,152,155,157,160],{"class":103,"line":146},3,[101,148,108],{"class":107},[101,150,151],{"class":111},"Framework",[101,153,154],{"class":107},">11.0.x\u003C\u002F",[101,156,151],{"class":111},[101,158,159],{"class":107},">          ",[101,161,162],{"class":123},"\u003C!-- at least one, format major.minor.x -->\n",[101,164,166,168,171,174,176],{"class":103,"line":165},4,[101,167,108],{"class":107},[101,169,170],{"class":111},"Vendor",[101,172,173],{"class":107},">Example GmbH\u003C\u002F",[101,175,170],{"class":111},[101,177,178],{"class":107},">\n",[101,180,182,184,187,190,192],{"class":103,"line":181},5,[101,183,108],{"class":107},[101,185,186],{"class":111},"License",[101,188,189],{"class":107},">GPL-3.0\u003C\u002F",[101,191,186],{"class":111},[101,193,178],{"class":107},[101,195,197,199,202,206,209,213,216,218],{"class":103,"line":196},6,[101,198,108],{"class":107},[101,200,201],{"class":111},"Description",[101,203,205],{"class":204},"sVC51"," Lang",[101,207,208],{"class":107},"=",[101,210,212],{"class":211},"subq3","\"en\"",[101,214,215],{"class":107},">...\u003C\u002F",[101,217,201],{"class":111},[101,219,178],{"class":107},[221,222,224],"h3",{"id":223},"framework",[18,225,226],{},"\u003CFramework>",[14,228,229],{},"Declares the compatible framework version lines. Multiple lines are allowed and act as the key to cross-fork compatibility:",[92,231,233],{"className":94,"code":232,"language":96,"meta":97,"style":97},"\u003CFramework Minimum=\"11.0.9\">11.0.x\u003C\u002FFramework>\n\u003CFramework>7.0.x\u003C\u002FFramework>\n",[18,234,235,255],{"__ignoreMap":97},[101,236,237,239,241,244,246,249,251,253],{"class":103,"line":104},[101,238,108],{"class":107},[101,240,151],{"class":111},[101,242,243],{"class":204}," Minimum",[101,245,208],{"class":107},[101,247,248],{"class":211},"\"11.0.9\"",[101,250,154],{"class":107},[101,252,151],{"class":111},[101,254,178],{"class":107},[101,256,257,259,261,264,266],{"class":103,"line":127},[101,258,108],{"class":107},[101,260,151],{"class":111},[101,262,263],{"class":107},">7.0.x\u003C\u002F",[101,265,151],{"class":111},[101,267,178],{"class":107},[14,269,270,271,274,275,280],{},"The optional ",[18,272,273],{},"Minimum"," attribute enforces a minimum patch version. Read more in the ",[276,277,279],"a",{"href":278},"\u002Fdocs\u002Fotobo-znuny-kompatibilitaet","Compatibility Guide",".",[27,282,284],{"id":283},"filelist",[18,285,286],{},"\u003CFilelist>",[14,288,289,290,294],{},"Lists ",[291,292,293],"strong",{},"all"," files included in the package with their path and Unix permissions:",[92,296,298],{"className":94,"code":297,"language":96,"meta":97,"style":97},"\u003CFilelist>\n    \u003CFile Permission=\"660\" Location=\"Kernel\u002FConfig\u002FFiles\u002FXML\u002FMyPackage.xml\" \u002F>\n    \u003CFile Permission=\"644\" Location=\"var\u002Fhttpd\u002Fhtdocs\u002Fjs\u002FMyPackage.js\" \u002F>\n\u003C\u002FFilelist>\n",[18,299,300,309,336,358],{"__ignoreMap":97},[101,301,302,304,307],{"class":103,"line":104},[101,303,108],{"class":107},[101,305,306],{"class":111},"Filelist",[101,308,178],{"class":107},[101,310,311,314,317,320,322,325,328,330,333],{"class":103,"line":127},[101,312,313],{"class":107},"    \u003C",[101,315,316],{"class":111},"File",[101,318,319],{"class":204}," Permission",[101,321,208],{"class":107},[101,323,324],{"class":211},"\"660\"",[101,326,327],{"class":204}," Location",[101,329,208],{"class":107},[101,331,332],{"class":211},"\"Kernel\u002FConfig\u002FFiles\u002FXML\u002FMyPackage.xml\"",[101,334,335],{"class":107}," \u002F>\n",[101,337,338,340,342,344,346,349,351,353,356],{"class":103,"line":146},[101,339,313],{"class":107},[101,341,316],{"class":111},[101,343,319],{"class":204},[101,345,208],{"class":107},[101,347,348],{"class":211},"\"644\"",[101,350,327],{"class":204},[101,352,208],{"class":107},[101,354,355],{"class":211},"\"var\u002Fhttpd\u002Fhtdocs\u002Fjs\u002FMyPackage.js\"",[101,357,335],{"class":107},[101,359,360,363,365],{"class":103,"line":165},[101,361,362],{"class":107},"\u003C\u002F",[101,364,306],{"class":111},[101,366,178],{"class":107},[27,368,370],{"id":369},"dependencies","Dependencies",[92,372,374],{"className":94,"code":373,"language":96,"meta":97,"style":97},"\u003CPackageRequired Version=\"11.0.1\">ITSMCore\u003C\u002FPackageRequired>\n\u003CModuleRequired Version=\"3.0\">JSON::XS\u003C\u002FModuleRequired>\n",[18,375,376,398],{"__ignoreMap":97},[101,377,378,380,383,386,388,391,394,396],{"class":103,"line":104},[101,379,108],{"class":107},[101,381,382],{"class":111},"PackageRequired",[101,384,385],{"class":204}," Version",[101,387,208],{"class":107},[101,389,390],{"class":211},"\"11.0.1\"",[101,392,393],{"class":107},">ITSMCore\u003C\u002F",[101,395,382],{"class":111},[101,397,178],{"class":107},[101,399,400,402,405,407,409,412,415,417],{"class":103,"line":127},[101,401,108],{"class":107},[101,403,404],{"class":111},"ModuleRequired",[101,406,385],{"class":204},[101,408,208],{"class":107},[101,410,411],{"class":211},"\"3.0\"",[101,413,414],{"class":107},">JSON::XS\u003C\u002F",[101,416,404],{"class":111},[101,418,178],{"class":107},[420,421,422,431],"ul",{},[423,424,425,427,428,430],"li",{},[18,426,382],{}," — another ",[18,429,24],{}," package must be installed.",[423,432,433,435],{},[18,434,404],{}," — a Perl module (CPAN) must be available.",[27,437,439],{"id":438},"install-upgrade-sections","Install \u002F Upgrade Sections",[92,441,443],{"className":94,"code":442,"language":96,"meta":97,"style":97},"\u003CDatabaseInstall Type=\"post\">\n    \u003CTableCreate Name=\"my_table\">\n        \u003CColumn Name=\"id\" Required=\"true\" PrimaryKey=\"true\" AutoIncrement=\"true\" Type=\"INTEGER\" \u002F>\n        \u003CColumn Name=\"name\" Required=\"true\" Size=\"200\" Type=\"VARCHAR\" \u002F>\n    \u003C\u002FTableCreate>\n\u003C\u002FDatabaseInstall>\n\n\u003CCodeInstall Type=\"post\">\u003C![CDATA[\n    $Kernel::OM->Get('Kernel::System::MyModule')->Setup();\n]]>\u003C\u002FCodeInstall>\n",[18,444,445,462,479,525,561,570,578,585,605,611],{"__ignoreMap":97},[101,446,447,449,452,455,457,460],{"class":103,"line":104},[101,448,108],{"class":107},[101,450,451],{"class":111},"DatabaseInstall",[101,453,454],{"class":204}," Type",[101,456,208],{"class":107},[101,458,459],{"class":211},"\"post\"",[101,461,178],{"class":107},[101,463,464,466,469,472,474,477],{"class":103,"line":127},[101,465,313],{"class":107},[101,467,468],{"class":111},"TableCreate",[101,470,471],{"class":204}," Name",[101,473,208],{"class":107},[101,475,476],{"class":211},"\"my_table\"",[101,478,178],{"class":107},[101,480,481,484,487,489,491,494,497,499,502,505,507,509,512,514,516,518,520,523],{"class":103,"line":146},[101,482,483],{"class":107},"        \u003C",[101,485,486],{"class":111},"Column",[101,488,471],{"class":204},[101,490,208],{"class":107},[101,492,493],{"class":211},"\"id\"",[101,495,496],{"class":204}," Required",[101,498,208],{"class":107},[101,500,501],{"class":211},"\"true\"",[101,503,504],{"class":204}," PrimaryKey",[101,506,208],{"class":107},[101,508,501],{"class":211},[101,510,511],{"class":204}," AutoIncrement",[101,513,208],{"class":107},[101,515,501],{"class":211},[101,517,454],{"class":204},[101,519,208],{"class":107},[101,521,522],{"class":211},"\"INTEGER\"",[101,524,335],{"class":107},[101,526,527,529,531,533,535,538,540,542,544,547,549,552,554,556,559],{"class":103,"line":165},[101,528,483],{"class":107},[101,530,486],{"class":111},[101,532,471],{"class":204},[101,534,208],{"class":107},[101,536,537],{"class":211},"\"name\"",[101,539,496],{"class":204},[101,541,208],{"class":107},[101,543,501],{"class":211},[101,545,546],{"class":204}," Size",[101,548,208],{"class":107},[101,550,551],{"class":211},"\"200\"",[101,553,454],{"class":204},[101,555,208],{"class":107},[101,557,558],{"class":211},"\"VARCHAR\"",[101,560,335],{"class":107},[101,562,563,566,568],{"class":103,"line":181},[101,564,565],{"class":107},"    \u003C\u002F",[101,567,468],{"class":111},[101,569,178],{"class":107},[101,571,572,574,576],{"class":103,"line":196},[101,573,362],{"class":107},[101,575,451],{"class":111},[101,577,178],{"class":107},[101,579,581],{"class":103,"line":580},7,[101,582,584],{"emptyLinePlaceholder":583},true,"\n",[101,586,588,590,593,595,597,599,602],{"class":103,"line":587},8,[101,589,108],{"class":107},[101,591,592],{"class":111},"CodeInstall",[101,594,454],{"class":204},[101,596,208],{"class":107},[101,598,459],{"class":211},[101,600,601],{"class":107},">",[101,603,604],{"class":211},"\u003C![CDATA[\n",[101,606,608],{"class":103,"line":607},9,[101,609,610],{"class":211},"    $Kernel::OM->Get('Kernel::System::MyModule')->Setup();\n",[101,612,614,617,619,621],{"class":103,"line":613},10,[101,615,616],{"class":211},"]]>",[101,618,362],{"class":107},[101,620,592],{"class":111},[101,622,178],{"class":107},[14,624,625,626,629,630,629,633,629,636,639,640,643,644,646,647,650],{},"Counterparts: ",[18,627,628],{},"DatabaseUninstall",", ",[18,631,632],{},"CodeUninstall",[18,634,635],{},"DatabaseUpgrade",[18,637,638],{},"CodeUpgrade",". The ",[18,641,642],{},"Type"," controls the timing (",[18,645,92],{},"\u002F",[18,648,649],{},"post",").",[27,652,654],{"id":653},"tools","Tools",[420,656,657,664],{},[423,658,659,663],{},[276,660,662],{"href":661},"\u002Ftools\u002Fsopm-generator",".sopm Generator"," — create manifests via form",[423,665,666,670],{},[276,667,669],{"href":668},"\u002Ftools\u002Fsopm-validator",".sopm Validator"," — check existing manifests",[672,673,674],"style",{},"html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sVyAn, html code.shiki .sVyAn{--shiki-default:#E06C75}html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":97,"searchDepth":127,"depth":127,"links":676},[677,678,681,682,683,684],{"id":29,"depth":127,"text":30},{"id":89,"depth":127,"text":90,"children":679},[680],{"id":223,"depth":146,"text":226},{"id":283,"depth":127,"text":286},{"id":369,"depth":127,"text":370},{"id":438,"depth":127,"text":439},{"id":653,"depth":127,"text":654},"Packages","Reference of all important .sopm elements for OTOBO, Znuny, and OTRS CE: name, version, framework, filelist, dependencies, and install sections.",false,"md",{},20,"\u002Fdocs\u002Fsopm-referenz",{"title":5,"description":686},"docs\u002Fsopm-referenz","BV6o_lOO7USmbfMJcdN3eZGk4wcP8El0xigFd6zUCHg",1787732996803]