This article discusses the DECLARE statement in SQL, which you can find the official documentation here: https://docs.microsoft.com/en-us/sql/t-sql/language-elements/declare-local-variable-transact-sql?view=sql-server-2017

The DECLARE statement is used in a SQL statement to declare a variable. The declared variable can then be set using SET statement. Once set, the declared variable can be referred by the SELECT statement.

The DECLARE statement can also be used to declare a DATETIME and the SET statement can modify this DATETIME with DATEADD. This allows us to avoid dealing with JavaScript datetime variables.

For our case, we wanted to query all individuals that were set to turn 18 years old within a year.

In order to do this, we first ‘DECLARE’d the variables we would need and modified them using SET:


Note: First argument of DATEADD function can be any accepted SQL interval (year,month,week,day,hour,second,etc.)

Now that our 3 variables had been set, we were able to refer to them in the WHERE portion of the SELECT statement:

Full query with results:

By specifying the search range using DECLARE and SET, we are able to query the DOBs of just those users that are set to turn 18 years of age within a year of the query date.

If your business is not using a customer relationship management (CRM) system to manage contacts and improve customer experiences, you are missing out. CRM has evolved throughout the years to better sales, customer data and maintain relationships. Today, big data and artificial intelligence are integrating with CRM systems. However, this doesn’t mean that CRM technology, though becoming fully automated, will not be as effective for sales and marketing. In fact, the technology available can help your business manage customer relationships better than ever. It can provide what your customers are looking for before your competition can. The following are measures to leverage CRM software most effectively to focus on customer relationships.

  • Create Relationship-based Touchpoints – Once a customer relationship is formed, it’s crucial to maintain it. It often takes several touchpoints for customers to gather and fully process information about a brand. The key here is personalization and customers can usually pick out if a message is automated by a robot, or personally written by a salesperson. So invest in utilizing CRM data to have more personalized touchpoints with customers.
  • Finding the Right Amount of Touchpoints –  Every customer is different, but marketing professional Jeff Hoffman suggests using 5-7 touchpoints. Learn about your customer segments, demographics and buying behaviors to determine the ideal touchpoint for your customers to increase your chances of success.
  • Optimizing Customer Data – The optimal CRM system will allow you to see all of the touchpoints with a customer displayed on one single page. These insights are the building blocks of a solid customer relationship. They can help you plan future outreach messages and analyze business growth.
  • Building Relationship Through Emotional Connection – Many people claim they make decisions based solely on facts, but the truth is that most choices are based on emotion and subconscious rationales. Buying behavior, especially, has an emotional factor to it for some customers, so utilize your CRM data for your marketing team to reach out to customers on an emotional level.
  • Creating Integrations – Integrations make work so much easier. It de-clutters, saves time, and organizes your productivity. Integration your favorite tools and applications to your CRM system will provide maximum coverage and optimal contact to your clientele.

True CRMs help businesses forge meaningful relationships with their customers. Cultivating relationships with the help of your CRM system will lead to an increase in customer loyalty and increased brand reputation.

For Full Article, Click Here

For those who spend a large part of their day behind a screen, keyboard shortcuts are great and the time saved by using these shortcuts definitely accrues over time. You are losing precious seconds of productivity every time you lift your hand off the keyboard to use the mouse instead. Effectively using keyboard shortcuts can cut that wasted time down.

Most of us are already familiar with the most common keyboard shorts such as cut/copy/paste/undo/redo (ctrl+x/c/v/z/y).

At one point or another, we all have probably seen some type of chart online that shows all the possible keyboard shortcuts. This list is a bit daunting to take in at once and difficult to commit to memory unless you actually sit down and make it a point to memorize all the shortcuts. Even then, I find that it quickly fades from memory if not put to regular use.

Therefore I wanted to create this short list of keyboard shortcuts that I actually use in my daily work:

  1. Windows key + Arrow direction key – Snaps app window to left/right side/corner of screen

    Examples:
    Windows key + Left arrow direction key
    – left side


    Windows key + Right arrow direction key – right side


    Windows key + Left arrow direction key then Windows key + Up arrow direction key – left upper corner

    Windows key + Left arrow direction key then Windows key + Down arrow direction key – left lower corner

    Windows key + Up arrow direction key – Maximize window
    Windows key + Down arrow direction key – Minimize window

    The most common use case for me is when I want to compare two similar files. For example, sometimes I pull up an erroring work unit log on the left side and a normal, functioning log on the right to compare the two and see where the path diverges. There are also times that I will compare an old backup file to a new modified one to visualize the changes.

  2. Windows key + E – Opens File Explorer
  3. Windows key + M – Minimizes all windows (useful for quickly accessing desktop shortcuts)
    Windows key + Shift + M – Restores all minimized windows
    Windows key + Comma – Temporarily peek at the desktop
  4. Windows key + S – Opens Windows search.
    Simply start typing the program/file name after pressing Windows key + S. Useful for opening programs/files quickly.
  5. Ctrl + Shift + V – Paste as plain text. I use this at least a couple of times a day. This is especially useful when composing emails with copied snippets from other sources.Ctrl + V:


    Ctrl + Shift + V:

The Lawson Jobinteg command is powerful for clearing up orphaned jobs that may be causing users issues. This is usually in the form of a job that can’t be deleted or is corrupted and likely caused from patches and or upgrades to the form or job.

Disclaimer: For v10, a patch may also be needed to fully resolve some jobs when running the jobinteg command.  The patch is available for LSF 10.0.6 and 10.0.7 only, as of 8/2015 and may have changed since then.

jobinteg -v

Brings back all bad records and NTIDs tied to them.  This is useful if you need to create a report to analyze which potential jobs are corrupted/bad or get approval to delete them.

jobinteg -t

Brings back summarized report of all bad jobs.

jobinteg -d

Wipes all orphaned/corrupt jobs listed in the summary or full report.  This usually resoles most jobs that receive errors upon inquiry or running them.

Hope this was helpful!

In ServiceNow there are a ton of buttons when you first start using it and it can be overwhelming and easy to ignore them at first.

When a ticket finally makes it to you, it might be in a hierarchy of other ticket types (requests, changes, tasks, incidents).  For my example it’s under the “Request Item” field.

The Request Item in our case is another ticket type in the hierarchy and usually has more detailed of what the task is to complete this ticket.  A useful button that you may overlook is the “I’ button which is essentially an Info button with tons of helpful information.

This button shows a plethora of information that may be relevant in resolving the ticket or task and essentially allows you to view more specifics about the ticket without just searching for it elsewhere in ServiceNow.

All these Info buttons could be useful, some give detailed user information while others give location info.  It saves a bunch of time. Hope this was helpful!

Infor has released the Infor CloudSuite CRM Mobile for iOS to simplify customer relationship management for busy, on-the-go sales professionals. This new native mobile solution aligns with Infor’s goal of anticipating the needs of the emerging workforce. Users have access to information such as events, contacts, notes, and reminders from their mobile devices anytime, anywhere – all without navigating through pages of data. Infor CloudSuite CRM Mobile is part of the Infor Customer Experience suite of solutions and will help sales professionals seize opportunities in real-time, as well as increases active selling time by encouraging sales teams to be proactive. Additionally, users have a streamlined resource that leverages the most relevant features of Infor CRM and iOS functionality including contacts, meetings, directions, and analytics from core product and Apple 3D Touch, Apple Maps, and the iOS Quick Look file previewer. Infor CRM Mobile is currently available in the Apple iOS App Store and is planned to be available for Android devices in late 2019.

For Full Article, Click Here

Often people have spreadsheets that they are using for data gathering and don’t want to change the familiar format to accommodate a Lawson Upload.  Especially when it is a multi-tab spreadsheet that data can change depending on which tab you are pulling data from. No problem. Using advanced Excel techniques can pull the information from the specified tab in a format needed for uploading.

In this example, time attributable to projects is entered on a multi-tab spreadsheet one tab per period.

As the tab changes on the Instructions tab, and after the macro finishes by clicking n the Create Upload button, the total count and amount can be validated that the process worked as expected.

Each tab can have a different order of users and/or different active projects across the top.

As the tab changes on the Instructions tab, and after the macro finishes by clicking n the Create Upload button, the total count and amount can be validated that the process worked as expected.

The macro extracts the non-zero time entries and formats the data in a way that the Upload Wizard can then load the data into Lawson. 

We normally write stored procedures for nearly any transaction that has more than one component to it. For example, creating an invoice record that has many lines would require you to insert a record into a header table, and multiple records into a detail table. But what happens if you insert the header and one of the detail records fails to get inserted properly. In these cases, you’re usually greeted by a SQL Exception and error out. However, depending on how you write your stored procedure, you might now have one header record and some of the detail records in the database. In some cases this might be okay, but in most cases it is not and the preference would be to avoid inserting any of the records if even one of them fails. Luckily MySQL provides a really great solution for this problem.

You simply define the action to be taken once the exception is encountered, in our case a rollback, and then you start and end your transaction in between a “START TRANSACTION” and “END” directive as shown below:
BEGIN

    .. Declare statements ..

    DECLARE EXIT HANDLER FOR SQLEXCEPTION 
    BEGIN

          ROLLBACK;
    END;

    START TRANSACTION;

        .. INSERT  ..
        .. UPDATE  ..
        .. SELECT  ..

    COMMIT;
END

Grav is an open source flat-file CMS that we use for client documentation.

Requirements:

  1. Web Server (Apache, Nginx, LiteSpeed, Lightly, IIS, etc.)
  2. PHP 5.5.9 or higher

Advantages of using a Grav CMS for documentation:

  1. SEARCH bar: Can search entire collection of documentations for a search term instead of going through each doc file individually
  2. Not reliant on database: Flat-file content management system means that the data is stored in folders rather than a database = fast loading
  3. Easy to maintain since all data in local folders
  4. Simple HTML format written with Markdown syntax (https://nogalis.com/docr/how-to-use-docr to learn more about Markdown)
  5. Many useful plugins freely available (https://www.nogalis.com/2018/07/27/grav-a-modern-flat-file-cms for more information on plugins)
  6. User authentication and custom user privileges

Documentation Sections


  1. Introduction – Screenshot of the IPA flow and a short description about what it does
  2. General Data Flow – Box diagram showing step-by-step what is happening in the flow. Also accompanied by a paragraph explanation
  3. Components Table – A table that lists all input/output files, databases, scripts, triggers, jobs, and configuration variables
  4. Dependencies – The files, triggers, jobs, or SQL/server connections required for the flow to function
  5. Scheduling and Triggers – How/when the flow gets triggered
  6. Recovery – This section provides instructions on how to manually execute the steps of the flow if it fails. Each step here represents a box in the General Data Flow box diagram.
  7. Archiving – Table showing archived files and their archived locations
  8. Notifications – Details of the notifications sent by the flow
  9. Troubleshooting – General tips for troubleshooting
  10. Maintenance – Maintenance needed by the flow (usually involves cleanup of archived/done files)
  11. Security – Overview of user permissions and connection credentials needed for the flow
  12. Key Contacts – The person to contact for questions about the flow/documentation
  13. Related Files – File uploads related to the flow (these are able to be viewed/downloaded from the page)

For full examples, please visit https://nogalis.com/docr/demo_documentation

Nogalis offers monthly server healthchecks that informs clients of any current or potential problems in Lawson for both PROD and TEST servers. The healthcheck covers error logs, smoke tests, patches, LID functionality, portal check, database integrity, and many other sections (26 total) which will be briefly outlined here.

You can visit https://nogalis.com/docr/demo_hc to view a demo healthcheck for yourself.

  1. Summary

    This is arguably the most important section of the monthly healthcheck. If there is one section to read, it should probably be this one as it brings to attention the most pressing needs of all the other sections. There is also a handy letter grade assigned each month so you can quickly keep track of the overall health of your server!
  2. Recommendations

    This section has all the combined recommendations from the other sections of the healthcheck. It is divided into three levels of urgency so the client can decide what to focus in on.

  3. System Layout

    System hardware and OS information.

  4. Component Versions

    Lawson components version information. If server versions start to fall significantly behind latest versions, recommendations are made.

  5. Application Versions

    Lawson application version information

  6. Programs with Errors

    Any .err files found in the Lawson directory are pointed out in this section. As with any section, further investigation into any issue can be requested by sending an email to the Key Contact.

  7. Custom Programs

    List of custom Z/Y/X programs

  8. CPU Performance

    Tested while idle and under duress. Just a very rough idea of the CPU performance.

  9. Disks Report

    Report on the free space available of the different drives on the server. We make sure to point out in the Summary and Recommendations sections when a drive is getting dangerously low on free space.

  10. Purge Recommendations

    The disks report is followed by purge recommendations where we point out certain things that could be deleted to free up some space.

  11. Java

    Java settings information/recommendations and a screenshot of the jconsole.

  12. licsta

    Summary table of current licenses (viewable in LID)

  13. Error Logs

    Every month we grab these 6 important logs to analyze them for current errors. These errors are pointed out in this section so that the client can determine if they are worth investigating or not.

  14. Smoke Tests and Component Testing

    Various smoke tests with LID, Lawson portal, and various URL tests

  15. Recurring Job Listing

    Simple table listing of recurring jobs. One of the sneaky benefits of having all this information in one healthcheck page is that it allows for a quick search for any terms using the DOCR search bar on the left panel.

  16. Waiting Jobs

    List of waiting jobs

  17. Database/Table Review and Sizing

    This section displays the 10 tables with the largest number of rows for each of PROD/LOGAN/GEN. A quick overview of this section might lead to decisions to purge certain tables for example.

  18. Database Integrity Check

    Summary of database integrity check performed through LID. Any errors here are pointed out in Summary/Recommendations.

  19. Printers

    List of printers and their commands

  20. Work Directory Review

    Overview of Lawson work folder

  21. Print Directory Review

    The Lawson print directory list by user. This information could possibly be used to purge old users/records.

  22. Security Analysis

    Security analysis performed using LSFIQ
    (1-click Lawson security audit and reporting tool: see https://www.nogalis.com/nogalis-products/lawson-security-with-lsfiq/ for more info.)

  23. Patches Installed Report

    List of latest patches installed on this server.

  24. Source Versions Report

    The source versions report is in a zipped file available to download in the Related Files section.

  25. Related Files

    Any related files related to the healthcheck are in this section where they are available to view or download.

  26. Key Contacts

    If you have any questions about the healthchecks or would like to request an investigation into some error discovered by the healthcheck, please contact anyone in the Key Contacts section with your questions.