#navugsummit | #inreno15 #navugsummit session code: com08 an elegant solution for creating dynamics...

36
#NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

Upload: raymond-reed

Post on 20-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15

#NAVUGSummit

SESSION CODE: COM08AN ELEGANT SOLUTION FOR CREATING DYNAMICS

NAV USER DOCUMENTATION

Erik Hougaard

Page 2: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15 9

YOUR PRESENTERS

Erik HougaardR&D ManagerE FoqusMicrosoft MVP for 2 years

Page 3: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15

WHAT IS ”HELP” ?

Help is several things: A manual F1 help Videos Single documents White papers”help” is what you need to supply your users to be able to use your software.

Page 4: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15

CHALLENGES OF CREATING ”HELP”

First challenge: Documentation is dead the minute you’re finish writing it. Code changes, customers want it work differently, change requests keeps popping up. And the documentation (if any) stays at the initial level.

Page 5: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15

CHALLENGES OF CREATING ”HELP”

Second challenge: Documentation is kept in documents (Word/PDF) sitting on local drives, attached to email, stored on file shares, often in multiple versions without any clear version strategy.

Page 6: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15

CHALLENGES OF CREATING ”HELP”

Third challenge: Customer want F1 help, and this has historical been an nightmare to create with NAV – from compiling CHM files with 3rd party tools to distribute files to clients.

Anyone still got nightmares over “RoboHelp” ?

Page 7: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15

CHALLENGES OF CREATING ”HELP”

Fourth challenge: New formats comes along all the time, creating an eBook with your help content would be a very modern thing to do.

Page 8: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15 15

Separate tasks into:– Writing– Designing– Producing

Work with source code management (code and documentation goes together)

Put documentation into build environment

GOALS

Page 9: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15

FIRST STEP – ORGANIZE THE INPUT TEXT

Help text can either be content specific (help to a specific field) or general. With NAV the requirement for content specific help is mandatory, users can press F1 and expects to get content specific help.

Page 10: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15 17

We have created two tables in NAV – one for holding content specific help and one for holding general help. The content specific table can be pre-populated with references to all objects and fields.

So now, we have a organized database for our text. We created BLOB fields to hold the text. This will almost solve the 2nd problem – Putting the text in a database. We can reference object versions, languages etc.

FIRST STEP – ORGANIZE THE INPUT TEXT

Page 11: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15 18

What ”syntax” should we use for writing and storing our help text ?

Word ? HTML ? SGML ? TXT ?

”PORTABLE” TEXT – WHAT TO WRITE ?

Page 12: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15

THE ANSWER IS MARKDOWN

Readable formatted text

Page 13: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15 20

For the Help Server we need text in HTML For a manual we need some sort of

formattet text For an eBook we need something eBook

specific

WHAT ”OUTPUT” FORMATS DO WE NEED?

Page 14: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15

PANDOC – WWW.PANDOC.ORG

About pandoc If you need to convert files from one markup format into another, pandoc is your swiss-army knife.

Pandoc can convert documents in markdown, reStructuredText, textile, HTML, DocBook, LaTeX, MediaWiki markup, TWiki markup, OPML, Emacs Org-Mode, Txt2Tags, Microsoft Word docx, EPUB, or Haddock markup to

HTML formats: XHTML, HTML5, and HTML slide shows using Slidy, reveal.js, Slideous, S5, or DZSlides.

Word processor formats: Microsoft Word docx, OpenOffice/LibreOffice ODT, OpenDocument XML Ebooks: EPUB version 2 or 3, FictionBook2 Documentation formats: DocBook, GNU TexInfo, Groff man pages, Haddock markup Page layout formats: InDesign ICML Outline formats: OPML TeX formats: LaTeX, ConTeXt, LaTeX Beamer slides PDF via LaTeX Lightweight markup formats: Markdown (including CommonMark), reStructuredText, AsciiDoc,

MediaWiki markup, DokuWiki markup, Emacs Org-Mode, Textile Custom formats: custom writers can be written in lua.

Page 15: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15 22

LATEX FOR BOOKS

Page 16: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15 23

LATEX FOR BOOKS

Page 17: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15

GETTING STRUCTURE INTO OUR DOCUMENTATION

A good technical books has a table of content, so we will create our own ToC.

And when we look closer at the Dynamics Help Server we find a ToC.xml file that hold the information for the left side menu.

Page 18: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15 25

A XML file that hold the Table of Content and points to objects and articles.

STRUCTURE

Page 19: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15

GRAPHICAL LAYOUT

Both for the Help Server and for a PDF manual, we need:

Layout

Page 20: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15 27

Quite simple, a template HTML file with place holders for titles and texts.

HELP SERVER LAYOUT

Page 21: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15 28

Jigsaw of LaTeX snippes for: ManualStart ManualEnd ChapterHead ChapterBetweenTopics TableTopicHeadAnd many more….. Look in template.xml

MANUAL LAYOUT

Page 22: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15

EDITING AND STORING HELP TEXT WITH NAV CODE

Page 23: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15

EDITING AND STORING HELP TEXT WITH NAV CODE

Page 24: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15

EDITING AND STORING HELP TEXT WITH NAV CODE

Page 25: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15

EDITING AND STORING HELP TEXT WITH NAV CODE

Page 26: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15

EDITING AND STORING HELP TEXT WITH NAV CODE

Page 27: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15

RUNNING THE WHOLE THING

Page 28: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15 35

SUCCESS – HELP SERVER

Page 29: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15 36

SUCCESS – PDF MANUAL

Page 30: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15 37

AUTOMATED BUILDS

Page 31: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15 38

My blog: www.hougaard.com

GitHub: https://github.com/hougaard/HelpTools

WHERE TO FIND ALL THIS:

Page 32: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15 40

Q&A

Page 33: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15 42

• 23 tips and tricks for developers

Fri, 10:30

• Huddle up: ITFri, 2:15

SUGGESTED SESSIONS

Page 34: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15 43

Erik Hougaard– [email protected]

CONTACT INFO

Page 35: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard

#NAVUGSummit | #INreno15 44

THANK YOU!

Complete your survey now! Download these slides from

navug.com Ask questions and connect in

the Summit 2015 community Submit your town hall

questions to [email protected]

Visit the I Love NAV booth #233– Wed 6:00 – 8:00– Thu 12:00 – 2:00– Fri 10:00 – 12:00

Visit the NAVUG Medics in the ABC Computers Hub

Have fun!

Page 36: #NAVUGSummit | #INreno15 #NAVUGSummit SESSION CODE: COM08 AN ELEGANT SOLUTION FOR CREATING DYNAMICS NAV USER DOCUMENTATION Erik Hougaard