Skip to main content
Solved

Exposing Service Orders Screen to the Mobile App


PaulMainard55
Varsity I
Forum|alt.badge.img+2

Has anyone deployed the Service Orders management screen to the Mobile App?  Are the any code snippets available for this?

Best answer by RaphaelPfaff12

You can add the screens in the projecteditor and publish the customization

 

Activate the Checkbox in the PL

 

And add the Service Orders PL in the mobile Workspaces

 

Mobile App:

 

 

View original
Did this topic help you find an answer to your question?

5 replies

Forum|alt.badge.img

Hi @plmainard,

did you ever find a solution to this?


RaphaelPfaff12
Semi-Pro I

You can add the screens in the projecteditor and publish the customization

 

Activate the Checkbox in the PL

 

And add the Service Orders PL in the mobile Workspaces

 

Mobile App:

 

 


Forum|alt.badge.img

Thank you for the quick and detailed response @RaphaelPfaff12!

Worked great!


Whilst you can expose the Service Order on the App, Does anyone now how to make so that you can Edit / Create Service Orders in the App? 


Forum|alt.badge.img

@Matthew Shaw You have to add the screen, fields, actions, etc to the page.

If you haven’t already, I highly recommend going through the Mobile Development learning path in Acumatica University

I have successfully added screens FS3001PL & FS300100 to mobile, using the already existing FS300200 & FS400100 as a guide of how to use the code. 

The code I used is posted below, if you would like to use it, but again explore the learning path!
 

update sitemap {
  # service order screen
  add item "FS300100"{
    displayName = "Service Orders"
    visible = False
  }

  # service order list screen
  add folder "ServiceOrderList" {
    type = HubFolder
    isDefaultFavorite = True
    displayName = "Service Order List"
    icon = "system://Ticket"
    add item "FS3001PL" {
      displayName = "Service Orders"
    }
  }  

  # Service Order report
  add item "FS641000" {
    visible = False
  }
}
add screen FS3001PL {
  type = FilterListScreen
  add container "Filter_"{
    add field "Branch"  {
      selectorDisplayFormat = KeyDescription
    }
  }
  add container "Result"{
    fieldsToShow = 8
    add field "OrderNbr" {
      listDisplayFormat = CaptionValue
    }
    add field "Date" {
      listDisplayFormat = CaptionValue
    }
    add field "Status" {
      listDisplayFormat = CaptionValue
    }
    add field "Customer" {
      displayName = "Cust. ID"
      selectorDisplayFormat = KeyDescription
      listDisplayFormat = CaptionValue
    }
#    add field "Location" {
#      displayName = "Loc. ID"
#      selectorDisplayFormat = KeyDescription
#      listDisplayFormat = CaptionValue
#    }
    add field "Description" {
      displayName = "Description"
      listDisplayFormat = CaptionValue
    }
    add field "InvoiceTotal" {
      listDisplayFormat = CaptionValue
    }
    add containerAction "EditDetail" {
      behavior = Open
      redirect = True  
    }
    add containerAction "Insert" {
      icon = "system://Plus"
      behavior = Create
      redirect = True
    }
  }
}
add screen FS300100 {
  # not sure what this does, but appointment does it.
  openAs = Form

  # default container required.
  add container "ServiceOrder" {
    # how many fields to show on summary page
    fieldsToShow = 5
    # layout for the header
    add layout "ServiceOrderHeader" {
      layout = "HeaderSimple"
      # row 1 of header
      add layout "ServiceOrderHeaderRow1" {
        layout = "Inline"
        add field "OrderNbr"{
          listPriority = 99
          listDisplayFormat = CaptionValue
        }
        add field "Status"{
          listPriority = 98
          listDisplayFormat = CaptionValue
        }
      }
      # row 2 of header
      add layout "ServiceOrderHeaderRow2" {
        layout = "Inline"
        add field "ServiceOrder#EstimatedTaxTotal" { displayName = "Tax" }
        add field "InvoiceTotal"{
          listPriority = 97
          listDisplayFormat = CaptionValue
        }
      }

#      # can not figure out how to show remaining bal here and on totals tab
#      # row 3 of header
#      add layout "ServiceOrderHeaderRow3" {
#        layout = "Inline"
#        add field "TotalsPrepaymentTotals#ServiceOrderUnpaidBalance" {displayName = "Unpaid Balance"}
#      }
    }

    # start of summary tab layouts

    # service order & show on map button
    add layout "ServiceOrderTypeLine" {
      displayName = "ServiceOrderTypeLine"
      layout = "Inline"
      add field "OrderType" {
        selectorDisplayFormat = KeyDescription
        weight = 2
        selector {
          fieldsToShow = 2
          add field "OrderType" {
            listDisplayFormat = CaptionValue
          }
          add field "Description" {
            listDisplayFormat = CaptionValue
          }
        }
      }
      add recordActionLink "ViewDirectionOnMap"
    }
    #add field "OrderNbr" # cant show here and in header...

    # customer information
    add field "Customer"{
        listPriority = 92
        listDisplayFormat = CaptionValue
      }
    add field "Location"
    add layout "BranchLine" {
      displayName = "BranchLine"
      layout = "Inline"
      add field "FinancialFinancialInformation#Branch" {
        selectorDisplayFormat = KeyDescription
        selector {
          fieldsToShow = 2
          add field "BranchID" {
            listDisplayFormat = CaptionValue
          }
          add field "AcctName" {
            listDisplayFormat = CaptionValue
          }
        }
      }

      # branch location
      add field "BranchLocation"{
        selectorDisplayFormat = KeyDescription
        selector {
          fieldsToShow = 2
          add field "BranchLocationID" {
            listDisplayFormat = CaptionValue
          }
          add field "Description" {
            listDisplayFormat = CaptionValue
          }
        }
      }
    }

    # Service Orderdescription
    add field "Description"{
        listPriority = 91
        listDisplayFormat = CaptionValue
      }

    # add attributes to Summary
    add containerLink "Attributes"

    # note text for service order
    add field "NoteText" {
      textType = PlainMultiLine
    }

    # staff commetents for service order (formally longdesc)
    add field "StaffComments" {
      textType = PlainMultiLine
    }

    # financial colapsable layout
    add group "FinancialSettingsGroup" {
      displayName = "Financial Information"
      collapsable = True
      collapsed = True
      add field "FinancialFinancialInformation#BillingCustomer" {
        special = AllowEdit
        selectorDisplayFormat = KeyDescription
        pickerType = Searchable
        selector {
          fieldsToShow = 2
          add field "CustomerID" {
            listDisplayFormat = CaptionValue
          }
          add field "CustomerName" {
            listDisplayFormat = CaptionValue
          }
        }
      }
      add field "FinancialFinancialInformation#BillingLocation" {
        forceIsVisible = True
        special = AllowEdit
        selectorDisplayFormat = KeyDescription
        selector {
          fieldsToShow = 2
          add field "LocationID" {
            listDisplayFormat = CaptionValue
          }
          add field "LocationName" {
            listDisplayFormat = CaptionValue
          }
        }
      }
    }

    # address collapsable layout
    add group "AddressGroup" {
      displayName = "Address"
      collapsable = True
      collapsed = True
      add field "SettingsAddress#AddressLine1"
      add field "SettingsAddress#AddressLine2"
      add layout "CityLine" {
        displayName = "CityLine"
        layout = "Inline"
        add field "SettingsAddress#City"
        add field "SettingsAddress#State" {
          selectorDisplayFormat = KeyDescription
          listDisplayFormat = CaptionValue
          selector {
            fieldsToShow = 2
            add field "StateID" {
              listDisplayFormat = CaptionValue
            }
            add field "StateName" {
              listDisplayFormat = CaptionValue
            }
          }
        }
      }
      add layout "CountryLine" {
        displayName = "CountryLine"
        layout = "Inline"
        add field "SettingsAddress#Country" {
          selectorDisplayFormat = KeyDescription
          listDisplayFormat = CaptionValue
          selector {
            fieldsToShow = 2
            add field "CountryID" {
              listDisplayFormat = CaptionValue
            }
            add field "Country" {
              listDisplayFormat = CaptionValue
            }
          }
        }
        add field "SettingsAddress#PostalCode"
        add recordActionLink "ViewDirectionOnMap"
      }
    }

    # contact collapsable layout
    add group "ContactGroup" {
      displayName = "Contact"
      collapsable = True
      collapsed = True
      add field "SettingsContactContact#Contact" {
        selectorDisplayFormat = KeyDescription
        selector {
          fieldsToShow = 2
          add field "Contact" {
            listDisplayFormat = CaptionValue
          }
          add field "Email" {
            listDisplayFormat = CaptionValue
          }
        }
      }
      add field "SettingsContact#Email" {
        special = EmailSend
      }
      add layout "PhoneLine" {
        displayName = "PhoneLine"
        layout = "Inline"
        add field "SettingsContact#Phone1Type" {
          special = PhoneCall
        }
        add field "SettingsContact#Phone1" {
          special = PhoneCall
        }
      }
    }

    # add a details tab    
    add layout "DetailsTab" {
      displayName = "Details"
      layout = "DataTab"
      add containerLink "Details"
    }

    # add Appointments tab
    add layout "AppointmentTab" {
      displayName = "Appointments"
      layout = "DataTab"
      add containerLink "Appointments"
    }

    # totals tab
    add layout "TotalsTab" {
      displayName = "Totals"
      layout = "Tab"
      add group "SrvOdrTotalsGroup" {
        displayName = "Service Order Totals"
        add layout "ServiceOrderTotalLine" {
          displayName = "ServiceOrderTotalLine"
          layout = "Inline"
          add field "TotalsServiceOrderTotals#EstimatedTaxTotal"
          add field "TotalsServiceOrderTotals#EstimatedTotal"
        }
      }
      add group "TotalsGroup" {
        displayName = "Appointment Totals"
        add layout "LineTotalLine" {
          displayName = "AppointmentTotalsLine"
          layout = "Inline"
          add field "TotalsAppointmentTotals#ActualBillableTotal"
          add field "TotalsAppointmentTotals#ActualTaxTotal"
        }
        add field "TotalsAppointmentTotals#InvoiceTotal"
      }      
      add group "PrepaymentTotalsGroup" {
        displayName = "Prepayment Totals"
        add layout "PrepaymentTotalsLine" {
          displayName = "PrepaymentTotalsLine"
          layout = "Inline"
          add field "TotalsPrepaymentTotals#PrepaymentReceived"
          add field "TotalsPrepaymentTotals#PrepaymentApplied"
          add field "TotalsPrepaymentTotals#PrepaymentRemaining"
        }
        add layout "SOPrepaymentTotalsLine" {
          displayName = "SOPrepaymentTotalsLine"
          layout = "Inline"
          add field "TotalsPrepaymentTotals#ServiceOrderUnpaidBalance"
          add field "TotalsPrepaymentTotals#ServiceOrderBillableUnpaidBalance"
        }
      }
      add containerLink "Prepayments"
    }

    # add ability to save changes for Service Order
    add recordAction "Save" {
      behavior = Save
    }

    # confused
    add recordAction "Cancel" {
      behavior = Cancel
    }    

    # add schedule appoitnment to 3 dots
    add recordAction "ScheduleAppointment"{
      displayName = "Create Appointment"
      behavior = Void
      redirect = True
    }

    # add ability to create new Service Order
    # I disabled this to get rid of the + symbol. may now add new service
    #    orders via new summary page FS3001PL similar to appointments
#    add recordAction "Insert" {
#      behavior = Create
#    }

    # Preview Service Order report
    ## Currently not working...
    add recordAction "PrintServiceOrder" {
      displayName = "Preview Report"
      behavior = Record
      redirect = True
    }

    # open address in google maps
    add recordAction "ViewDirectionOnMap" {
      behavior = Void
      redirect = True
    }
  }

  # Setup Appointments Container
  add container "Appointments" {
    fieldsToShow = 5
    add field "AppointmentNbr" {
      # this adds the icon next to Appoitnment Nbr to link to appointments screen
      special = AllowEdit      
      listDisplayFormat = CaptionValue
    }
    add field "Status" { listDisplayFormat = CaptionValue }
    add field "ScheduledStartDate" { listDisplayFormat = CaptionValue }
    add field "ScheduledStartTime"  { listDisplayFormat = CaptionValue }
    add field "InvoiceTotal"  { listDisplayFormat = CaptionValue }
    add field "Appointments#NoteText" { listDisplayFormat = CaptionValue }
    add field "StaffComments" { listDisplayFormat = CaptionValue }
  }

  # details container setup  
  add container "Details" {
    fieldsToShow = 8
    listActionsToExpand = 1
    formActionsToExpand = 2
    containerActionsToExpand = 1
    add layout "RefNbrLine" {
      displayName = "RefNbrLine"
      layout = "Inline"
      add field "RefNbr" {
        listPriority = 97
        listDisplayFormat = CaptionValue
      }
      add field "LineStatus" {
        listPriority = 96
        listDisplayFormat = CaptionValue
      }
      add field "LineType" {
        listPriority = 98
      }
    }
    add field "InventoryID" {
      listPriority = 99
      selectorDisplayFormat = Key
      pickerType = Searchable
      selector {
        fieldsToShow = 2
        add field "InventoryID" {
          listDisplayFormat = CaptionValue
        }
        add field "Description" {
          listDisplayFormat = CaptionValue
        }
      }
    }
    add field "Description" {
      listPriority = 94
      listDisplayFormat = CaptionValue
    }
    add layout "QuantityLine" {
      displayName = "QuantityLine"
      layout = "Inline"
      add field "EstimatedQuantity"
      add field "Quantity"{
          listPriority = 93
          listDisplayFormat = CaptionValue
        }
    }
    add field "UOM"
    add layout "LocationLine" {
      displayName = "LocationLine"
      layout = "Inline"
      add field "Warehouse" {
        selectorDisplayFormat = KeyDescription
        selector {
          fieldsToShow = 2
          add field "WarehouseID" {
            listDisplayFormat = CaptionValue
          }
          add field "Description" {
            listDisplayFormat = CaptionValue
          }
        }
      }
      add field "Location"
    }
    add field "LotSerialNbr"
    add group "PurchaseOrderSection" {
      displayName = "Purchase Order"
      collapsable = True
      collapsed = True
      add field "MarkForPO"
      add field "POSource"
      add layout "VendorGroup" {
        displayName = "VendorGroup"
        layout = "Inline"
        add field "VendorID" {
          pickerType = Searchable
          selector {
            fieldsToShow = 2
            add field "Vendor"
            add field "VendorName" {
              listDisplayFormat = CaptionValue
            }
          }
        }
        add field "VendorLocationID" {
          selector {
            fieldsToShow = 2
            add field "LocationID"
            add field "LocationName" {
              listDisplayFormat = CaptionValue
            }
          }
        }
      }
      add field "PONbr" {
        special = AllowEdit
      }
    }
    add group "BillingInformationGroup" {
      displayName = "Billing Information"
      collapsable = True
      collapsed = True
      add layout "BillingLine" {
        displayName = "BillingLine"
        layout = "Inline"
        add field "Billable"
        add field "FreeItem"
      }
      add field "UnitPrice" {
        listPriority = 91
        listDisplayFormat = CaptionValue
      }
      add field "ExtPrice" {
        listPriority = 90
        listDisplayFormat = CaptionValue
      }
      add field "UnitCost"
      add field "ExtCost"
    }
    add field "NoteText" {
      textType = PlainMultiLine
    }    
    add containerAction "Insert" {
      displayName = "Add New"
      icon = "system://Plus"
      behavior = Create
    }
    add selectionAction "Delete" {
      icon = "system://Trash"
      behavior = Delete
    }
    add recordAction "Delete" {
      icon = "system://Trash"
      behavior = Delete
      after = Close
    }
    add recordAction "Insert" {
      displayName = "Add Another"
      icon = "system://Plus"
      behavior = Create
    }
  }

  # attributes container setup  
  add container "Attributes" {
    attributes = True
    attachments {
    }
  }

  # prepayments container setup
  add container "Prepayments" {
    fieldsToShow = 4
    listActionsToExpand = 2
    formActionsToExpand = 2
    containerActionsToExpand = 1
    add field "ReferenceNbr" {
      forceIsDisabled = True
      listPriority = 99
      listDisplayFormat = CaptionValue
    }
    add layout "ApplicationDateLine" {
      displayName = "ApplicationDateLine"
      layout = "Inline"
      add field "ApplicationDate" {
        forceIsDisabled = True
      }
      add field "PaymentMethod" {
        listPriority = 97
        listDisplayFormat = CaptionValue
      }
    }
    add layout "PaymentAmountLine" {
      displayName = "PaymentAmountLine"
      layout = "Inline"
      add field "PaymentAmount" {
        forceIsDisabled = True
        listPriority = 98
        listDisplayFormat = CaptionValue
      }
      add field "AvailableBalance" {
        listPriority = 96
        listDisplayFormat = CaptionValue
      }
    }
    add layout "AppliedToOrdersLine" {
      displayName = "AppliedToOrdersLine"
      layout = "Inline"
      add field "AppliedToOrders"
      add field "Currency" {
        forceIsDisabled = True
      }
    }
    add field "NoteText" {
      textType = PlainMultiLine
    }
    add containerAction "CreatePrepayment" {
      behavior = Void
      redirect = True
    }
    add recordAction "ViewPayment" {
      displayName = "View Document"
      behavior = Void
      after = Close
      redirect = True
    }
    attachments {
    }
  }  
}

 


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings