Which OSS to contribute?

My first and only contribution in an open source software was OTRS. In there I translated, helped in localization, tested, answered to questions in mailing lists, and write some blog posts about it. My progress in OTRS was good but the problem was that OTRS was written in Perl in Linux platform but I was a C# developer in Windows platform. So I will never could contribute in its development. Additionally OTRS could not help me to increase my C# and .Net skills.

Consequently I decided to contribute in a C# open source project. As I thought learning a CMS could be fascinating, started to work on Cuyahoga. Cuyahoga is an open source ASP.NET MVC and C# project that utilizes NHibernate as its ORM. Installing and using Cuyahoga for a while learned me that Cuyahoga is an ASP.NET MVC project and will force me to learn ASP.NET MVC. Because I was going to deepen my C# skills and didn’t want to hang with ASP.NET MVC and its deployment issues, I decided to find another OSS to contribute.

Many folks at StackOverflow believes that best open source project to contribute is a project that you use it in daily tasks. Some of OSS that I use regularly are Firefox, ScrewTurn Wiki, NHibernate, Ajax Control Toolkit and Pidgin. Among them just NHibernate and ScrewTurn Wiki are almost based only on C#. So I’m going to take a closer look at their contribution state and their community to find out which of them is better to me to contribute.

‫مشارکت من در یک نرم‌افزار آزاد به نام OTRS

OTRS چیست؟
OTRS یک نرم‌افزار آزاد و کد باز (FOSS) است که در اصل یک نرم‌افزار مکانیزاسیون Help Desk می‌باشد ولی بعدها امکانات ITIL:ITSM هم به آن افزوده شد. از این نرم‌افزار در تیم‌های پشتیبانی محصول و خدمات IT در شرکت‌ها و ادارات استفاده شده و گاهی اوقات آن را CRM نیز می‌نامند، چون تعامل مشتریان را با سازمان مدیریت می‌کند. OTRS فعلاً در ایران بیشتر در ISPها استفاده می‌شود. این نرم‌افزار تحت وب با پرل نوشته شده و محیط اصلی اجرای آن LAMP می‌باشد ولی به راحتی در ویندوز، IIS و MS SQL Server هم قابل اجراست. این نرم‌افزار تحت مجوز GPL منتشر شده و هسته اولیه آن را یک آلمانی به نام Martin Edenhofer ایجاد کرده است. OTRS به طور مداوم در حال توسعه بوده و جامعه کاربری بسیار فعالی دارد.

OTRS چطور پول در می‌آورد؟
توسعه‌دهندگان اولیه OTRS کارشان را با تاسیس یک شرکت ادامه دادند. خدماتی که این شرکت ارائه می‌دهد عبارت است از توسعه OTRS و ماژول‌های آن و افزودن امکانات خاص به آن بر مبنای درخواست مشتری (با دریافت پول)، مشاوره و استقرار OTRS در سازمان مشتری، قراردادهای پشتیبانی و مشاوره و خدمات hosting.
در عین حال توسعه دهنده اصلی OTRS بر خلاف خیلی از نرم‌افزارهای کدباز معروف عمدتاً خود اعضای این شرکت هستند نه جامعه برنامه‌نویسان داوطلب. البته OTRS توسعه‌ها و patchهای کاربران را نیز قبول کرده و به CVS خود می‌افزاید. بعضی افراد هم ماژول‌های خاص خود را برای OTRS توسعه داده‌اند اما با وجود همه این حرف‌ها باز هم عمده توسعه توسط خود شرکت انجام می‌پذیرد. همان طور که در بالا اشاره شد سود شرکت OTRS از خدمات جانبی که ارائه می‌دهد آنقدر هست که حالا حالاها به توسعه OTRS و انتشار مجانی و آزاد آن ادامه دهد و حتی به فکر افزایش سرمایه هم باشد.

OTRS چطور مشارکت افراد را به خود جلب می‌کند؟
پروژه OTRS (نه شرکت OTRS) هیچ چیزی برای پنهان کردن ندارد. آنها صداقت فوق‌العاده‌ای دارند و مانند هر پروژه کدباز موفق دیگری همه موارد مورد نیاز را در اختیار افراد قرار می‌دهند:
۱- تمام سورس کد بدون هیچ مخفی کاری شامل نسخه‌های جاری و تمام نسخ قبلی (CVS) ++
۲- چند mailing-list فعال همراه با آرشیوهای قبلی. ++
۳- مرجع خیلی دقیقی برای ثبت و پیگیری bugها به اسم Bugzilla. آنها تک تک باگ‌های ثبت شده را مورد بررسی قرار داده و در صورت لزوم ترتیب اثر می‌دهند. ++
۴- documentation همه بخش‌ها به طور کامل. ++
۵- پشتیبانی کامل از زبان‌های غیر انگلیسی از جمله زبان فارسی (به جز تقویم)
۶- همکاری و راهنمایی به کاربران و رسیدگی به مشکلات و باگ‌های ارائه شده توسط آنها

چطور با OTRS آشنا شدم و چه کارهایی با انجام دادم؟
پاییز ۸۶ وقتی که در یک مرکز دولتی کار می‌کردیم OTRS به عنوان یک نرم‌افزار مدیریت Trouble Ticket به ما معرفی و از ما خواسته شد ضمن بررسی و نصب آن در صورت امکان آن را برای زبان فارسی و محیط ایران محلی‌سازی کرده و گزارشاتی به آن بیفزاییم. پاییز ۸۷ همین کار را یک شرکت نیمه خصوصی انجام دادیم. با این تفاوت که این بار قرار شد از ماژول ITSM به طور کامل استفاده کرده و بخشی از فرایند ITIL یعنی Service Managment را با استفاده از OTRS پیاده‌سازی کنیم. ما در بهار ۸۸ برای بار سوم OTRS را در یک شرکت خصوصی نرم‌افزاری مورد بهره‌برداری قرار دادیم اما این بار بدون توجه به ITIL و به عنوان یک نرم‌افزار صرفاً Ticket Management. این شرکت از OTRS برای ثبت و پیگیری درخواست‌های رفع مشکل (Ticket) مشتری‌ها و در واقع به عنوان نرم‌افزاری برای پیاده‌سازی مفهوم CRM استفاده می‌کند.

من چه کارهایی برای OTRS انجام دادم؟
۱- ترجمه بعضی ماژول‌ها و به روز رسانی ترجمه‌های قبلی نرم‌افزار ++ ++ ++ ++ ++
۲- همکاری جهت رفع مشکلات مربوط به زبان فارسی ++ ++ ++  ++ ++
۳- تهیه راهنمای نصب OTRS در ویندوز ++ ++ ++ ++
۴- تحریر بعضی مطالب جهت بررسی و تبلیغ OTRS ++ ++ ++ ++
۵- مشارکت‌های هر چند خیلی کوچک در جوابگویی به سوالات کاربران در mailing listهای مربوطه.

من چه چیزهایی از OTRS یاد گرفتم؟
من علاوه بر این که همیشه حق‌الزحمه کارهای خودم را از کارفرماهایم گرفته‌ام چیزهای زیادی در حین مشارکت در OTRS یاد گرفته‌ام:
۱- تجربه‌ی کار با یک تیم حرفه‌ای توسعه نرم‌افزار در آن سوی مرزها، هر چند خیلی کوتاه و مختصر.
۲- سورس کنترل، Bug Tracking، پایگاه خبری و مدیریت نسخه‌های (منتشر شده) در موفقیت یک پروژه نقش خیلی حیاتی بازی می‌کنند و هیچ وقت نباید هیچ کدام از آنها را دست کم گرفت و یا کنار گذاشت.
۳- چطور می‌شود یک پروژه کدباز و کاملاً آزاد ایجاد کرد و از آن حتی بدون donation پول در آورد، شرکت موفقی تاسیس کرد و حسابی هم معروف شد.
۴- چطور می‌توان طعم شیرین مشارکت در یک پروژه کدباز را چشید، به آن کمک کرد و بی پول هم نماند. قرارداد با یک شرکت ایرانی از یک سو و به اشتراک گذاشتن کارهای انجام شده و مفاهیم یاد گرفته شده با جامعه کاربری پروژه از دیگر سو.
۵- چطور فرایند پشتیبانی از یک نرم‌افزار در یک شرکت نرم‌افزاری را با استفاده از OTRS مکانیزه و منظم کرده و به اصطلاح یک CRM (مدیریت ارتباط با مشتری) به وجود آورد.

پیوندهای مرتبط:
۱- پروژه OTRS
۲- شرکت OTRS
۳- مطالب وبلاگ خودم راجع به OTRS
۴- شرکت امپیکو

Basic steps to localizing OTRS and other softwares into Persian

1. Ability to save and retrieve Persian texts.

2. Supporting right-to-left direction and right alignment.

3. Supporting Persian (Jalali) calendar in both getting dates from user and displaying dates to him (her).

4. Displaying Persian numeric digits ۰۱۲۳۴۵۶۷۸۹ instead of English numeric digits 0123456789.

5. Translating software itself into Persian. This include menu and button captions, messages and etc.

 

Advanced steps for localizing softwares may be achieved by implementing Iranian standard ISIRI 6219 and other related standards.

OTRS has done steps 1,2 and 5 but needs to go through steps 3 and 4. For step 3 (Persian Calendar) there exists a Perl module named Date-Jalali-0.01 written by Ahmad Anvari for converting Gregorian and Persian calendar to each other. Ahmad has also written another Perl module named Lingua-FA-Number-1.0 for converting English and Persian numeric digits to each other that can be used to implement step 4.

 

See also:

1. Persian Computing group: A community of people specialized in Persian standards, localization and internationalization.

‭Understanding OTRS Stats (Reports)

rep Two kinds of stats exist: dynamic stats and static stats. Users are more familiar with dynamic stats. Many sample dynamic stats are installed into OTRS by default. For example “Tickets Overview” is one of these pre-installed reports. In a static stat you first select an object. Then you select two aspects or properties of the object. OTRS then creates a matrix and uses those 2 properties for rows and columns and uses count of corresponding row and column as each cell’s data. For example consider “Ticket” as an object and “Type” and “Queue” as its properties. Then the above mentioned matrix looks like following:
 
Queue/Type Incident Service Request Problem
Queue1    2 1 0
Queue2    1 3 2
Queue3 4 5 2
Raw    2 3 3
 

Using such a stat you can determine how many tickets of type “Problem” exists in queue “Queue1”. While defining a stat, you can set your restrictions on it.
In opposite of dynamic stats, there is static stats. A static stat does not use dynamic objects to generate reports; instead it uses system objects directly to generate a stat. This type of report is indeed a customized report because you must write a real Perl module to create such a stat. The Perl module must have certain sub-routines and all of sub-routines must return data in a certain format. These modules should be placed in “otrs/kernel/system/stats/static”. If you don’t place stat file in this path, you will never even see Static option while defining new stats or editing old stats. There are no default static stats in OTRS.
In the following please consider object “ITSMConfigItem” and its properties as an example for dynamic reports:

  1. Class
  2. Deployment State
  3. Incident State
  4. Hardware Module::Type
  5. Computer::Type
  6. Hardware Device::Type
  7. Location::Type
  8. Software::Type
  9. Software::License Type
  10. Creation Time
  11. Change Time

 

References:

‭Localizing OTRS into Persian (Farsi)

‭‭Mawlānā Jalāl ad-Dīn Muḥammad Balkhī

OTRS core framework has been previously translated into Persian (Farsi) by Hooman Mesgari and Amir Shams Parsa. It was even enabled to work bi-directional (RTL, LTR) by some other people. This translation worked well but at this time needed to be updated. There is about 1600 entries in "fa.pm" (June 2009, v2.3.4) that about 130 entries were new and has not been translated into Persian (Farsi) yet. In addition to OTRS core framework itself, there exists several modules that should be translated including ITSM and FAQ modules.

In order to complete/update this translations, I as a 2 year OTRS user decided to translate/update OTRS core framework and its modules. I used translation files that I have downloaded from CVS at 2009, 21 June. And now list of works I have done:

OTRS core framework (fa.pm):

  • ~130 new entries (there is ~1600 entries totally)
  • ~15 translation corrections related to words "stat", "role", and "lock"
  • 2 correction of Persian letter "ARABIC LETTER FARSI YEH", U+06CC
  • ~130 correction of ZWNJ character mostly in words that include HA (ها)
  • ~25 correction of Persian (Farsi) numeric characters like "۰۱۲۳۴۵۶۷۸۹"

Modules translated to Persian (Farsi):

  1. fa.pm
  2. fa_GeneralCatalog.pm
  3. fa_ImportExport.pm
  4. fa_ITSMConfigItem.pm
  5. fa_ITSMCore.pm
  6. fa_ITSMLocation.pm
  7. fa_ITSMService.pm
  8. fa_ITSMTicket.pm
  9. fa_FAQ.pm

Note:

  1. All module translations are based on German versions.
  2. My primary translations could be found here.
  3. I have sent back these translations to internationalization mailing list and don’t know when they will check-in them to CVS.
  4. If anyone find any wrong translation, please let me know.
  5. I have done this with the help of my friend Masoud Ramezani
  6. I used FARDIS project to do some tasks in this process.
  7. CVS address of above modules are based on Farsi versions. So if they don’t work, please replace "fa" with "de" or "en" in their URLs.

‫نصب ActivePerl روی ویندوز ۲۰۰۳

ActivePerl نرم افزاری است که با نصب آن بر روی ویندوز می‌توانید اسکریپت‌های پرل را اجرا کنید. این نرم افزار محصول ActiveState است و صد البته تنها نرم افزاری نیست که می‌تواند پرل را روی ویندوز اجرا کند. پرل برای اجرای نرم افزار OTRS که یک نرم افزار معروف Help Desk کد باز و تحت وب است مورد نیاز است. مراحل نصب:

۱- با مراجعه به Control Panel مطمئن شوید که IIS نصب است. IIS به طور پیش فرض در ویندوز 2003 نصب نیست. IIS در قسمت Application Server قرار دارد و برای نصب آن به سی دی ویندوز 2003 نیاز هست. w1

 

۲- ActivePerl را نصب کنید. لطفا Optionهای نصب را تغییر ندهید.w2

 

۳- از قسمت Web Service Extensions اجرای Perl CGI Extension را مجاز اعلام نمایید.

w3

۴- IIS را Restart کنید.

۵-IIS را امتحان کرده و مطمئن شوید که می‌تواند اسکریپت‌های CGI و Perl را اجرا کند. برای این کار کد زیر را در یک فایل متنی ساده با پسوند .pl ذخیره کرده و آن در یک شاخه اختصاصی در شاخه wwwroot بگذارید. سپس در IIS یک Virtual Directory جدید ساخته و مسیر فایل فوق الذکر را به آن معرفی کنید. سپس آدرس کامل آن را به انضمام نام فایل بالا در browser خود تایپ کنید. اگر همه چیز درست پیش رفته باشد باید برنامه در حال کار را ببینید در غیر این صورت تا حل مشکل به مراحل بعدی نروید. دقت کنید که اگر به جای Virtual Directory یک Application ساخته باشید هیچ چیزی کار نمی‌کند و خطا می‌گیرید.

 

#!/usr/bin/perl

print “Content-type: text/htmlnn”;
print <<HTML;
<html>
<head>
<title>A Simple Perl CGI</title>
</head>
<body>
<h1>A Simple Perl CGI</h1>
<p>Hello World</p>
</body>
HTML
exit;

۶- ممکن است دو لینک زیر برای رفع مشکلات مربوط به نصب پرل روی IIS کمک کند:
•    http://perl.about.com/od/perltutorials/a/hellocgi.htm
•     http://community.activestate.com/forum-topic/configuring-perl-on-iis-7

 

پ. ن.: ‫نصب OTRS روی ویندوز ویستا

How “ZZZAuto.pm” can stop OTRS from sending mail?

email “ZZZAuto.pm” is the second configuration file that is searched by OTRS to find configuration entries like SMTP. To find out a specific configuration entry, OTRS searches “config.pm” first and if it is present, it will be used. If not present then “ZZZAuto.pm” will be searched for.
But what’s wrong with this? In our OTRS installation we were using a mail account to send e-mails and notifications from OTRS using SMTP. This mail account was using user name and password for authentication. After a while, mail server changed its policies. It didn’t need user name and password anymore. If OTRS sent “AuthUser” and “AuthPassword” to mail server, the mail server would not accept any e-mail and would give us following error message:

Message: SMTP authentication failed: 535 authorization failed (#5.7.0) ! Enable Net::SMTP debug for more info!

So in a test machine I commented “AuthUser” and “AuthPassword” in the “config.pm” and everything went O.K. I did same modifications in the operational machine but OTRS was not able to sent any e-mail yet and error message was not changed.
I was very confused! Why same settings were working on one machine but would not work in another one? I did some tests and realized if I comment “Host” in “config.pm” I receive a new error message:

Message: Can’t connect to somewhere.com : Invalid argument!

I wondered while I have commented “Host” entry in “config.pm” so where were “somewhere.com” coming from? I searched for and YES! It was in “ZZZAuto.pm”. “Host” was not important for me because I could change it in “config.pm” but I also found two annoying entries there: “AuthUser” and “AuthPassword”. They should be absent but they were sent to mail server and were causing it stop relaying our messages. In the other hands they were not present in “config.pm” as I desired but because OTRS was finding them in “ZZZAuto.pm” so was sending them back to the mail server. I commented them in “ZZZAuto.pm” too and everything went O.K. once another time.

 

See also:

OTRS config files and SysConfig

SMTP authentication failed

 

OTRS config files and SysConfig

All OTRS configurations are saved in 3 config files named "config.pm", "ZZZAuto.pm" and "ZZZAAuto.pm". OTRS in order to retrieve any specific configuration entry, searches these files in a special order. If a specific entry is found in a config file, other config files are not searched. By this, "config.pm" has higher priority than "ZZZAuto.pm" and "ZZZAuto.pm" itself has a higher priority than "ZZZAAuto.pm". I dub "ZZZAuto.pm" tiny config file and dub "ZZZAAuto.pm" the main config file afterward.
It’s possible to change all entries of main config file via SysConfig through UI. Consider that there are some special config entries that does not exists in main config file. One example is database connection string. Such settings can not be edited by SysConfig. Main config never changes but tiny config file is changed everytime you change an entry via SysConfig.
If you’re going to change an entry that currently resides in "config.pm", the only way is changing "config.pm" directly even that entry contains in either main or tiny config files. In the other hand, SysConfig saves your changes in tiny config file but it does not take effect because a same entry exists in "config.pm".
Using SysConfig you can download all OTRS configurations except those that are not present in main config file (like database connection string). This config file indeed is our lovely tiny config file that it is downloaded for users. You can change this downloaded file, add or edit your desired entries and then upload them back to OTRS again. By uploading a new configuration file, this new uploaded file is replaced with OTRS tiny config file.

‫OTRS::ITSM و پشتیبانی آن از ITIL

«این نوشته تقریبا خلاصه‌ای از راهنمای OTRS::ITSM 1.2 – Basic است.»

مقدمه
ITIL مجموعه‌ای از راهنمایی‌ها، روش‌ها و تجارب مفید گروه OGC است که در اداره امور IT در ادارات، سازمان‌ها و مجموعه‌های بزرگ کاربرد فراوانی دارد. به عبارت دیگر اگر مدیران IT روش انجام کار و تقسیم‌بندی‌هایشان را بر اساس ITIL انجام دهند در راهبری زیر مجموعه تحت امرشان موفق‌تر خواهند بود. ITIL که استاندارد ISO 20000 هم بر اساس آن ابداع شده به بخش‌های مختلفی تقسیم می‌شود. IT Service Management یا همان ITSM یکی از همین بخش‌هاست که OTRS هم در حال حاضر قسمت‌هایی از آن را پیاده سازی کرده است. ITSM شامل ۱۱ زیر بخش مختلف است که این زیربخش‌ها در ۲ دسته کلی Service Support و Service Delivery قرار دارند. نرم‌افزار OTRS در حال حاضر (اردیبهشت ۱۳۸۸) پنج تا از این زیر بخش‌ها را پیاده‌سازی کرده است که عبارتند از: Service Desk Function، Incident Management، Problem Management، Configuration Management و Service Level Management.

‫بخش‌های مختلف Service Management در ITIL

 

معرفی زیربخش‌ها
Service Desk Function همان عملکرد کلی OTRS به عنوان یک سیستم مکانیزه واحد پشتیبانی است. Service Level Management از طریق اعمال «توافق سطح سرویس SLA» بر صف‌های داخلی OTRS محقق می‌شود. Incident & Problem Management هم مرتبط با مدیریت درخواست‌های (ticket) کاربران (مشتریان) سیستم است و در انتها Configuration Management نیز به معنی نگهداری و مدیریت اطلاعات CIها است. هر CI یا Configuration Item می‌تواند یک کامپیوتر، سخت افزار، نرم افزار، شبکه، محل قرارگیری یا… باشد. به عبارت دیگر CI هر چیزی در یک واحد IT است که نیاز به نگهداری و دانستن اطلاعاتی درباره آن هست. با مرتبط کردن درخواست‌ها (ticket) و سرویس‌ها با بانک اطلاعاتی CIها که به اختصار CMDB نامیده می‌شود می‌توان با استفاده از گزارشات سیستم، میزان مورد استفاده بودن یا خرابی هر یک از CIها را استخراج کرد. اگر جنبه  مالی سیستم‌های مدیریت اموال و دارایی معمول ادارات را در نظر نگیریم می‌توان CMDB در واحدهای IT را تا اندازه‌ای با سیستم مدیریت اموال و دارایی (Asset) در ادارات و سازمان‌ها شبیه به هم دانست. از آنجایی که خود OTRS به تنهایی از ITSM پشتیبانی نمی‌کند برای افزودن این امکانات به آن باید از ماژول‌های اضافه‌ای به نام OTRS::ITSM استفاده کرد. این مجموعه ماژول بخش‌های ذکر شده از مدیریت سرویس را به OTRS اضافه می‌کنند. در ادامه شرح مختصری از امکانات ITSM در OTRS که به واسطه این ماژول‌ها به آن افزوده می‌شود، می‌آید.

 

Incident and Problem Management
دم‌دست‌ترین امکان ITSM در OTRS همان Incident Management است. Incident را در فارسی می‌توان به «رخداد» ترجمه کرد. یک رخداد به خودی خود به معنی «مسئله» نیست بلکه یک جور اعلام وضعیت است. به وجود آمدن این وضعیت یا رخداد ممکن است به علت یک خرابی ساده یا پیچیده باشد و ممکن است هیچ خرابی در به وجود آمدن نقش نداشته باشد. مثلا وقتی که شما کولر اتاق‌تان را روشن می‌کنید ولی اتاق خنک نمی‌شود یک رخداد (Incident) به وجود می‌آید. تا زمانی که این رخداد بررسی نشود نمی‌توان آن را یک «مشکل» تلقی کرد. این رخداد ممکن است به علت بسته بودن دریچه کولر اتاق و در نتیجه خنک نشدن اتاق باشد (عدم وجود یک مشکل خاص)، ممکن است به علت پارگی کابل برق کولر باشد (خرابی ساده) یا ممکن است به علت سوختن موتور کولر باشد (خرابی پیچیده). در OTRS::ITSM برای اعلام یک Incident باید یک درخواست (ticket) از نوع Incident ثبت کرد.
Problem Management در OTRS::ITSM مشابه Incident Management است. با این تفاوت که Problem عمدتا توسط کارشناسان (agent) ثبت می‌شوند نه مشتری‌ها (Customer). Agentها که همان کارمندان بخش IT یک اداره هستند با ثبت شدن هر Incident آن را بررسی کرده و در صورتی که علت وقوع آن یک خرابی ساده یا پیچیده نباشد آن را برطرف می‌نمایند در غیر این صورت آن درخواست (ticket) را تبدیل به یک Problem کرده یا به ازای آن یک Problem جدید ثبت می‌کنند. معمولا Incidentها و Problemهای مختلف در صف‌های جداگانه‌ای ثبت شده و مسئولین پیگیری مختص به خود را دارند.

‫رابطه بین Incidetnt، Problem و دیگر بخش‌های Service Management

 

با استفاده از مکانیزم صف‌ها می‌توان پشتیبانی چند سطحی را پیاده سازی کرد. پشتیبانی چند سطحی یعنی هر مشکل به محض وقوع به گروهی از کارشناسان برای رفع مشکل سپرده می‌شود. در صورتی که این گروه نتوانند مشکل را برطرف کنند، «مشکل» به گروه خبره‌تری سپرده می‌شود تا آن را حل کنند. اگر این گروه دوم هم نتوانند مشکل را حل کنند کار به همین ترتیب به گروه‌های بعدی سپرده می‌شود. به هر کدام از این گروه‌ها یک «سطح» گفته می‌شود. در OTRS کارهای هر سطح در یک «صف» قرار داده می‌شود و در واقع هر صف بیانگر یک سطح از پشتیبانی است.

پشتیبانی چند سطحی

 

SLA
چه در مورد «Incident» و چه در مورد «Problem» از SLA برای تعیین زمان پاسخگویی به درخواست‌های موجود در یک صف استفاده می‌شود. با SLA چهار زمان «اولین پاسخگویی»، «زمان پاسخ تکمیلی»، «زمان تکمیل انجام درخواست» و «حداقل زمان بین دو درخواست» مشخص می‌شود. این ۴ زمان تکلیف کارشناسان (agent) و مشتری‌ها (agent) را با هم مشخص می‌کند و اگر به خوبی رعایت شود خیلی از دعواهای بین واحد کامپیوتر (کارشناسان) و کارمندان (مشتریان) را از بین می‌برد. SLAها را می‌توان بر اساس تقویم‌های مختلفی تعریف کرد. یعنی می‌شود ساعات کاری و روزهای تعطیل و غیر تعطیل را بر اساس یک تقویم از پیش تعریف شده معین نمود. برای آن که مدیریت مجموعه بتواند کنترل بیشتری روی انجام درخواست‌ها (چه Incident و چه Problem) داشته باشد راهی وجود دارد به نام «تصمیم گیری Decision». در این روش مدیر IT یا کارشناس مربوطه درخواست‌ها (ticket) را بررسی کرده و با ثبت یک یادداشت ویژه انجام آن را تایید یا ممنوع می‌کنند. به این مکانیزم Approval هم گفته می‌شود.

‫SLA و مفاهیم زمانی آن

 

CMDB
کار کردن با بانک اطلاعاتی CIها (CMDB) در OTRS خیلی راحت است. هر CI مثل یک کلاس یا آبجکت در دنیای برنامه‌نویسی است. یعنی هر CI از تعدادی property تشکیل می‌شود. هر property می‌تواند یک نوع داده ساده مثل integer یا string باشد یا این که می‌تواند یک نوع جدول مانند باشد. مثلا یک سرور می‌تواند ۱۰ عدد کارت شبکه و در نتیجه ۱۰ تا IP داشته باشد. یک property خود می‌تواند از نوع یک کلاس (CI) دیگر هم باشد. در OTRS::ITSM تعدادی کلاس از پیش تعریف شده وجود دارد که امکان ویرایش این کلاس‌های از پیش تعریف شده و همچنین تعریف کلاس‌های جدید در OTRS::ITSM وجود دارد. علاوه بر این امکانات می‌شود بین هر کدام از CIها با یکدیگر یا بین CIها و دیگر اقلام OTRS مثل درخواست‌ها (ticket) یا سرویس‌ها رابطه تعریف نمود. به این ترتیب می‌توان اطلاعات مفیدی مثل این که کدام CI بیشترین گزارش خرابی را به خود اختصاص داده یا کدام CI بیشترین استفاده را دارد را از سیستم استخراج کرد. یکی از اطلاعاتی که در مورد هر CI ثبت می‌شود «وضعیت عملیاتی» آن است. وضعیت عملیاتی هر CI طی مکانیزم خاصی روی دیگر CIها تاثیر می‌گذارد.

OTRS generated CSV and Unicode issue

It’s a while for now that we have problems with OTRS generated CSV files and Unicode. We are conducting an OTRS implementation in a Persian (Farsi) context. OTRS’s Stats (reports) module can generate CSV as output. There is 2 problems here. First, delimiter character used is Semicolon (;) not Comma (,) and second, because of our Unicode environment, CSV file format is UTF8. Following screenshot shows such a CSV file opened directly in MS Excel 2007, all of fields is just located in one column and Persian (Farsi) text are showed incorrectly as some meaningless characters:

A CSV file opened directly in MS Excel 2007

 

While searching for the solution in OTRS mailing lists, I found a good and very simple solution. Resolving the issue is possible by importing (not opening directly) the CSV with some considerations. All necessary steps are illustrated in the following.

1. Select “Get External Data, From Text” from Data menu and select desired CSV file:

Menu: Data->From Text->Get External Data From Text

 

2. A wizard opens. In the first step select “65001 : Unicode (UTF-8)” as “File Origin” and click “Next”:

Use

 

3. In the second step select “Semicolon” instead of “Comma” and click “Next”:

Select

 

4. In the 3rd step of wizard click “Finish” and in the “Import Data” window click “OK”. After this you will see your correct data in correct cell (each field in a separate column) and correct language (Persian text not garbage one) in MS Excel 2007:

Our CSV showed and interpreted in corrected way

 

Please consider that all of these instructions are applicable in MS Excel 2003 too.