How to find a specific class in Dynamics 365? - microsoft-dynamics

I'm new on Microsoft Dynamics 365 programming and I've a question that in fact it's consuming me a lot!
Well, I want to make a little customization in code at Fixed Asset Module.
I'm at FixedAsset -> Fixed Assets Jounal, but I don't know how to find in Visual Studio, at the AOT (Application Object Tree) the class that contains the codes related to FixedAssetsJournal.
How can I find it?

Welcome to Dynamics 365 for Finance and Operations development! Discovering where things are and where you should be is one of the challenges of AX development.
For a good place to start from the front-end/UI is to right click, go to Form information -> Form name:LedgerJournalTrans.
You will see a form slide out on the right side. At the bottom of that form is a fast-tab for Administration; opening that will show you several artifacts that you can view to see where in the AOT this particular form is located. From the form you can dive into tables that back it and classes that run business logic on it.

Related

Templated PDF output with a front end editor view

Looking at various plugins, libraries to create PDF output. I'm trying to build out a application that allows admin user to upload/create their own template (complex print layouts) and a end user to create a PDF from that template with some rich editing tools. The original layouts are based in indesign/pdf. The final high res output is to printers / pdf download.
Basically a web to print project.
I'm trying to figure out to go with a commercial plugin like
https://customerscanvas.com
printui.com
https://www.chili-publish.com/chili-publisher
layoutbuddy.com
Or can someone make some recommendations or other similar projects
thanks
Really depends on your budget, will to keep hands on stuff, etc. Most of the tools you are quoting are great. Chili Publish is great, Pressero too. I don't know PrintUI myself but the owner and it's a serious enough sign of quality to me. All of those are turn-key solutions. Once that said, if you want to build your own tool, you can have a look at PDFChip but all the wrapping development belongs to you.
There are plenty others but those are the one i can talk about.

Sitecore from Developer perspective

I just started to look into Sitecore and I was wondering if anyone can help me enlighten what / how it is exactly from a developer perspective.
I've gone through bunch of their documentation and also their SDN - seems to me so far most of them are just drag/drop click here and there through their interface (ie. through their "Sitecore Desktop") with very minor actual programming.
Is this true? or are their actual C# / ASP.Net programming behind the scene to implement business logic and such?
I went through their basic tutorial (creating basic site for Product), and like I mentioned above, it's all mostly done through their interface without any real programming - as opposed to working with the ASP.Net MVC3 Music Store tutorial where you can see some C# programming.
Thanks!
A Sitecore developer should have the most intense and deepest understanding of Sitecore in general. Developers need to understand the CMS user's perspective (i.e. content editor's POV), they need to understand the architecture of content within the content tree, and they need to know the code, which they build. A developer should have the most intimate knowledge of a Sitecore solution because you need to know the architecture to know how to code. And to know the architecture means you know how content editors will interact with the content.
Architecture
Sitecore is a souped up database. Think of it like that. You can architecture a site how you want. But once you start to learn the principles of Sitecore architecture and best practices you'll notice a pattern. Everything in the content tree is an item. The model for each item (called a template in Sitecore terms) is defined by an architect (which is often often a developer). In fact, even if there's a separate person for the architect role, they likely have developer knowledge as architecture defines the way things are developed. In fact, the architecture is one of the most important things.
Code
Code is broken down into various types, but in its simplest form there are two main things: layouts and sublayouts.
Think of a layout as what a normal a ASP.NET application uses a MasterPage for. In Sitecore, a layout is actually a ASPX WebForm, but it acts as a master page. Some examples of layouts you could have on your site are: One Column Layout, Two Column Layout, Print Layout. These would respectively translate to a header and footer with one main content area, a header and footer with a main column and side bar, and a print-optimized layout with maybe a logo and just main content.
Sublayouts are all of the little components that make up a page. Examples include: main navigation, a promo box in your side bar, a list of 5 recent news pieces, a CTA for a promotion, a sidebar slide show, etc. These components could be modular and moved around by content editors, or they can be fixed within the location of layouts, e.g. a promo box could always appear in the sidebar of the Two Column layout as a business rule defined in the code.
To answer your question about is there actual coding, yes. You write code using ASP.NET controls for Sitecore and Sitecore's C# API to access data that is populated into the templates on each item. So, if you had an item for a page that had a page title for the title tag, your code would use the Sitecore API to access the field "Title Tag" from the template (remember a template in Sitecore speak is a data model) in Sitecore.
Coding For Sitecore
I'd say there are two approaches to coding. I believe you identified one of them, which is using the internal tools within Sitecore's interface. Sitecore has a section called Developer Center that lets you create layouts and sublayouts. Frankly, compare this to using Visual Studio in Design Mode all of the time. I have never once used the Developer Center to do my coding. Instead, I code in Visual Studio which is the most common technique for people to code for Sitecore (at least I think it is). Now if you're wondering, how does the coding connect to Sitecore's data... well the answer is within Sitecore. There's a section of the tree called Layouts. In here are the names of your layouts and sublayouts. Each layout and sublayout item has a path that maps to either a ASPX WebForm or ASCX User Control, respectively. This is how the code on the file system that you write in Visual Studio actually gets used by Sitecore. These layout and sublayout items are then used via the Presentation > Details tabs for each item in Sitecore.
Beginners
One of the hardest things with Sitecore is the learning curve. I've been using Sitecore for years now and love it. In fact, its all I really do. It's by far my favorite CMS as its completely customizable and very developer-friendly. Sitecore recommends that new developers take the developer training classes so they can basically explain what I explained above in an actual training curriculum. In this training you will learn the architecture, and then how the code connects to it. Training involves hand-on architecture work within the content tree and hands-on coding. The recommend training courses for new developers are:
Getting Started With Sitecore Development: Sitecore XP 8 Website Development for .NET Developers (4 days, certification)
Further Training for Sitecore Certified Developers - Sitecore XP 8 Livefire MVC Workshop (1 day, no certification)
Sitecore is an ASP.NET application. That means that you can write any code you like. Our team creates all of the Sublayouts (ASCX files) and Layouts (ASPX files) ourselves in Visual Studio, not the editors built in to Sitecore.
Some installations of Sitecore that I have seen barely rely on the CMS to do the rendering. Instead values are pulled via the codebehind as if Sitecore was just a database. That can work fine in some situations.
The most impressive Sitecore instances use all of the available tools that the developer has access to. Using the Sitecore tools the way they were designed to be used allows some pretty impressive editing options for the (often non-technical) content editors.
For example: Using a Sitecore Fieldrenderer instead of just a placeholder or label will not only automatically render content appropriately (whether they are images or rich text), but it will allow the content editor to edit the content right on the web page as opposed to the only on back end that all CMS systems have.
Workflow is another killer feature for a customer that is the right size to afford Sitecore. It lets you build an approval process for items in the tree. That way legal, marketing and the graphics team call all sign off on a new page before it goes live. Then when all of the approvals are finalized, the site publishes automatically.
To sum up: Sitecore is a .NET application, you can code whatever you want. That means you should focus on the CMS features and make sure it is a good fit for you from a content editor perspective and a financial perspective.
Sitecore is in most cases just drag & drop as you've described in terms of content authoring but to actually turn this content into a webpage you need to implement layouts, sublayouts and so on.
Layouts are generic ASP.NET pages (aspx), sublayouts are just web controls (ascx) and if you prefer you can also use XSLT to generate HTML but it's useful only for basics (Sitecore only supports XSLT 1 at this moment). These ASP.NET controls are more less the same as standard web forms controls with code behind and so on. The difference is that Sitecore is your datasource and it gives you an APIs to access all relevant applications.
But Sitecore APIs also goes beyond that and allows you programatic access to virtually any component of the framework. The APIs are well docummented and quite easy to understand and they can be used for more complex scenarios.
Latest version of Sitecore (6.4) allows you to also use MVC framework for layouts/sublayouts creation if you don't like web forms that much.
Layouts and sublayouts are a great way todo any customizations from a coding standpoint but there is a third way that is not mentioned here. We call it sitecore extensions. I often find that to meet customer requirements, creating custom assembly's for workflow actions or template commands is the only way.
For example, a standard email notification upon entry into a workflow state only allows for you to apply server, recipient, description etc.. to action item field. In our case these values constantly change so we need to be more dynamic. A custom assembly applied to the action allows us the flexibility to do a number of things that the standard action will not. Another example was that we needed to have a treelist in an item scroll to and highlight the current item. The way todo this was to override the core treelist action with our custom assembly.
Keep in mind that adding alot of code to the layout (which could be a master page for a ton of pages) ramps up the runtime overhead.
From a UX perspective, Sitecore is impractical, overpowered and too complex to be effectively implemented for teams with typical content contributors and editors. No thought has been put into streamlining content creation or simple page template maintenance. I would never recommend Sitecore to a team without:
HTML authoring/editing skills
FTP concepts & Site tree understanding
Data management skills
The system is built for developers, with users as a very distant after-thought. In my experience, it offers a huge number of benefits — being a usable system for every-day content authors is not one of those benefits. The system is so modular and over-managed, it forces users on every level to make decisions that only complicate otherwise simple operations. Content publishing is extremely modular, and a big benefit for developers; it is a catastrophe for everyday users.
If you're a developer, Sitecore is a wonderful building environment. It's powerful and flexible.
If you're a user, Sitecore is task-heavy and offers the steepest learning curve I've ever encountered with a CMS. UAT has been a nightmare.

How to get consolidated report of project mile stones for all projects in Redmine

We are Redmine as a Project management tool. It has been working great and we are happy with it. We now have a new requirement now. Our management wants to see a report showing each project's delivery date, manager, start date, total issues, open issues, closed issues. I searched at several places for quite some time and did not get a solution. I appreciate if someone can offer help.
This is, for me personally, the single thing JIRA is better at :)
Anyway, that being said, you can get a summary of all open versions on your "my page", eh, page, by using this plugin:
https://github.com/bradbeattie/redmine-my-widgets-plugin
And you can also add custom queries to "my page".
You can get much of what you want in the issue report. Click the Summary button in the sidebar of the issues page in each project. Example
Create one generic top level project. Calendar, gantt charts, issues, etc, for the top level project will show everything for every project that's nested underneath.
If you are properly adding roadmaps/milestones to all the projects, you can use My Roadmaps plugin to get a consolidated visibility:
http://www.redmine.org/plugins/my_roadmaps
It works fine with 1.2 and 1.4 versions.

CMS for Multilingual Localization and Translation Workflow

I'm helping build a multilingual website in English, Chinese and French (after in Spanish, Korean and Arabic). I've collected a database of over 2000+ entries. It is essentially a huge product catalog (specifically travel packages) where more or less the info is the same (prices, sizes, numbers, etc.) but the labels change (of course excluding certain intro texts that must be written manually). I want to avoid having to translate piece by piece manually.
There needs to be a way for users to save the things they are interested in and rate their favorites. Also, I need an e-commerce shopping cart. Search functionality is a must since people tend to start general (one or two categories or wants) and work towards specifics. Another need is to localization and internationalization. The other need is a specific workflow system so as content is updated and new additions are made, editors can be notified and translators can translate what needs to be done. Work flow is key since the project will involve dozens of non-technical people from around the world.
I originally tried to a work-around solution in Drupal but it seemed ill-equipped and clunky. I tried a self-built PHP CMS but the project seems to big for purely manual. I'm considering Plone and Django, but I don't have any experience working in Python, only PHP. I'm open to trying a new CMS if it meets my needs of internationalization, translation work flow, search functionality and on-going user experience.
Any suggestions on the best CMS for all this?
Plone would be a good solution for the CMS, workflow, search and multilingual.
Ecommerce is not Plone's strength though. I would recommend integrating Plone with something like Satchmo than doing the ecommerce in Plone itself. (This has been done with success in other deployements)
If you are looking at a Django solution to these problems you might consider Satchmo or Lightning Fast Shop for the e-commerce part and Pootle for the translation process...

Extending Filenet P8 3.5 Workplace with custom GUI and code

I'm not familiar with Filnet P8.
My assumptions from reading some online docs is that it has a central web-based user interface called Workplace which is implemented on the Java web stack and communicates with the core parts of Filenet through Java APIs.
Also it seems you can extend the Workplace trough JSR 186 compliant portlets. - from what I've read Filnet P8 Workplace is not a portal itself and cannot host portlets, but provides some of the functionality as portlets which can be used with 3rd party portals.
Filenet also seems to have a lot of extensibility points which don't require coding, but I'm considering a highly-customized application with custom dynamic grids and forms.
Is it possible to extend the Workplace using portlets and/or plain JSP/Servlet approach with custom GUI for a custom workflow? (Probably the "Web Application Toolkit" is the tool)
The GUI can contain grids with filtering and column selection, forms (not paper once) with dynamically disabling/enabling fields, custom search forms, dynamic context and dropdown menus.
The GUI should be able to integrate with the Content and Process engines of course.
A link to an existing Filenet P8 based solution which proves such a custom Workplace GUI extension possible would be great.
Thanks!
This is possible. First of all Workplace comes with FULL source code. Look in the AESource directory (usually in c:\Program Files\FileNet\AE if you are running it on Windows). What you need to decide first of all is where you want to plug in (for example do you want to create a new Wokrplace page altogether like the Browse and Search pages or do you want to splice it in as a new action like Checkout, Get-Info etc).
Once you figure that out, I can provide more specific information of where you want to look to add your new code. Once you can display an entry point to your own feature in Workplace, then you can use whatever you want as far as controls etc. You can use JSF grids or just classic JSP stuff or even JQuery controls (provided you link the right libs etc).
Another thing to keep in mind is that you are going to need to get familiar with the Web Application Toolkit (WAT) so that you can make sure you are getting the right state information from Workplace (like the user token of who is logged in, maybe what doc id the user clicked on, what folder they were in when they entered your UI).
Anyways, here is some info to get you started. If you provide more info about where you want to splice your UI in, I can provide some guidance as what you need to change etc.