Skip to main content

powerapps offline capability

 Save button:

If(
    Connection.Connected,
    If(
        FormModeIs = "New",
        Patch(
            'Spill Reporting',
            Defaults('Spill Reporting'),
            {
                Division: Division_DataCardValue.Text,
                District: District_DataCardValue.Text,
                Facility: Facility_DataCardValue.Text,
                State: State_DataCardValue.Text,
                County: County_DataCardValue.Text,
                'Date/Time of Discovery': DateValue_DateTimeDiscovery.SelectedDate + Time(
                    Value(HourValue_DateTimeDiscovery.Selected.Value),
                    Value(MinuteValue_DateTimeDiscovery.Selected.Value),
                    Value("00")
                ),
                'Date/Time Reported to HSE': DateValue_DateTimeHSE.SelectedDate + Time(
                    Value(HourValue_HSEHours.Selected.Value),
                    Value(MinuteValue_HSEMin.Selected.Value),
                    Value("00")
                ),
                Pipeline: DataCardValue_Pipeline.Text,
                'Quantity of Release': DataCardValue_QuantityOfRelease.Text,
                'Short Description of Release ': DataCardValue_ShortDesRelease.Text,
                'Latitude/Longitude': DataCardValue_LatLong.Text,
                'NRC Reportable': DataCardValue_NRCReportable.Value,
                'NRC Reportable justification statement': DataCardValue_NRCRepJust.Text,
                'T-State Reportable': DataCardValue_StateReportable.Value,
                'T-State Justification': DataCardValue_StateRepJust.Text,
                'PHMSA 30-Day Reportable': DataCardValue_PHMSAYesNo.Value,
                'PHMSA 30-Day reportable justification statement)': DataCardValue_PHMSAStatement.Text,
                'State Reportable': DataCardValue_PHMSA_StateReport.Value,
                'State Reportable justification statement': DataCardValue_PHMSA_StateRepJust.Text
            }
        );
        Notify(
            "Saved Successfully",
            Success,
            5000
        );
        Clear(ColDivisionSelectedValues);
        Clear(ColDistrictSelectedValues);
        Clear(ColFacilitySelectedValues);
        Clear(ColStateSelectedValues);
        Clear(ColCountySelectedValues);
        Clear(ColDistrictSelectedValues1a);
        Clear(ColFacilitySelectedValues1a);
        Clear(ColCountySelectedValues1a);
        Set(ResetNewForm, true);
        Navigate(SuccessScreen);
    );
    If(
        FormModeIs = "Edit",
        Patch(
            'Spill Reporting',
            LookUp(
                'Spill Reporting',
                ID = Gallery1.Selected.ID
            ),
            {
                Division: Division_DataCardValue.Text,
                District: District_DataCardValue.Text,
                Facility: Facility_DataCardValue.Text,
                State: State_DataCardValue.Text,
                County: County_DataCardValue.Text,
                'Date/Time of Discovery': DateValue_DateTimeDiscovery.SelectedDate + Time(
                    Value(HourValue_DateTimeDiscovery.Selected.Value),
                    Value(MinuteValue_DateTimeDiscovery.Selected.Value),
                    Value("00")
                ),
                'Date/Time Reported to HSE': DateValue_DateTimeHSE.SelectedDate + Time(
                    Value(HourValue_HSEHours.Selected.Value),
                    Value(MinuteValue_HSEMin.Selected.Value),
                    Value("00")
                ),
                Pipeline: DataCardValue_Pipeline.Text,
                'Quantity of Release': DataCardValue_QuantityOfRelease.Text,
                'Short Description of Release ': DataCardValue_ShortDesRelease.Text,
                'Latitude/Longitude': DataCardValue_LatLong.Text,
                'NRC Reportable': DataCardValue_NRCReportable.Value,
                'NRC Reportable justification statement': DataCardValue_NRCRepJust.Text,
                'T-State Reportable': DataCardValue_StateReportable.Value,
                'T-State Justification': DataCardValue_StateRepJust.Text,
                'PHMSA 30-Day Reportable': DataCardValue_PHMSAYesNo.Value,
                'PHMSA 30-Day reportable justification statement)': DataCardValue_PHMSAStatement.Text,
                'State Reportable': DataCardValue_PHMSA_StateReport.Value,
                'State Reportable justification statement': DataCardValue_PHMSA_StateRepJust.Text
            }
        );
        Notify(
            "Updated the Item ID " & Gallery1.Selected.ID & " Successfully",
            Success,
            5000
        );
        Clear(ColDivisionSelectedValues);
        Clear(ColDistrictSelectedValues);
        Clear(ColFacilitySelectedValues);
        Clear(ColStateSelectedValues);
        Clear(ColCountySelectedValues);
        Clear(ColDistrictSelectedValues1a);
        Clear(ColFacilitySelectedValues1a);
        Clear(ColCountySelectedValues1a);
        Set(ResetNewForm, true);
        Navigate(SuccessScreen);
    );
    ,
    //Offline
    Collect(
        MyItemsToPost,
        {
            Division: Division_DataCardValue.Text,
            District: District_DataCardValue.Text,
            Facility: Facility_DataCardValue.Text,
            State: State_DataCardValue.Text,
            County: County_DataCardValue.Text,
            'Date/Time of Discovery': DateValue_DateTimeDiscovery.SelectedDate + Time(
                Value(HourValue_DateTimeDiscovery.Selected.Value),
                Value(MinuteValue_DateTimeDiscovery.Selected.Value),
                Value("00")
            ),
            'Date/Time Reported to HSE': DateValue_DateTimeHSE.SelectedDate + Time(
                Value(HourValue_HSEHours.Selected.Value),
                Value(MinuteValue_HSEMin.Selected.Value),
                Value("00")
            ),
            Pipeline: DataCardValue_Pipeline.Text,
            'Quantity of Release': DataCardValue_QuantityOfRelease.Text,
            'Short Description of Release ': DataCardValue_ShortDesRelease.Text,
            'Latitude/Longitude': DataCardValue_LatLong.Text,
            'NRC Reportable': DataCardValue_NRCReportable.Value,
            'NRC Reportable justification statement': DataCardValue_NRCRepJust.Text,
            'T-State Reportable': DataCardValue_StateReportable.Value,
            'T-State Justification': DataCardValue_StateRepJust.Text,
            'PHMSA 30-Day Reportable': DataCardValue_PHMSAYesNo.Value,
            'PHMSA 30-Day reportable justification statement)': DataCardValue_PHMSAStatement.Text,
            'State Reportable': DataCardValue_PHMSA_StateReport.Value,
            'State Reportable justification statement': DataCardValue_PHMSA_StateRepJust.Text,
            FormModeValueIs:FormModeIs
        }
    );
    Notify("Since you are in Offline, Your submission has saved under cache. Once you are in Online, Your submission will automatically update to the data source. Thank you!",NotificationType.Information,10000);
    SaveData(
        MyItemsToPost,
        "MyItemsToPost"
    );
    Clear(ColDivisionSelectedValues);
    Clear(ColDistrictSelectedValues);
    Clear(ColFacilitySelectedValues);
    Clear(ColStateSelectedValues);
    Clear(ColCountySelectedValues);
    Clear(ColDistrictSelectedValues1a);
    Clear(ColFacilitySelectedValues1a);
    Clear(ColCountySelectedValues1a);
    Set(ResetNewForm, true);
    Navigate(DetailsScreen);
);
------------------------------------------------------------------------

App OnStart

Clear(ColDivisionDropdown);Clear(ColDistrictDropdown);Clear(ColFacilityDropdown);Clear(ColStateDropdown);Clear(ColCountyDropdown);


Collect(ColDivisionDropdown, ShowColumns(Filter(MaximoDivision, Status = "ACTIVE"),"Title"));

Collect(ColDistrictDropdown,ShowColumns(Filter(MaximoDistrict, Status = "ACTIVE"),"Title","Division"));

Collect(ColStateDropdown,MaximoState);

Collect(ColCountyDropdown,MaximoCounty);


ClearCollect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "A" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "B" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "C" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "D" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "E" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "F" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "G" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "H" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "I" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "J" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "K" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "L" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "M" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "N" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "O" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "P" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "Q" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "R" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "S" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "T" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "U" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "V" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "W" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "X" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "Y" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "Z" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "Z" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "0" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "1" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "2" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "3" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "4" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "5" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "6" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "7" )));

Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "8" )));


If( Connection.Connected,

    ClearCollect(

        MyItems,'Spill Reporting'

    );

    Set( statusText, "Online data" ),

    LoadData(MyItems,"MyItems",true);

    Set( statusText, "Local data" );

);

SaveData( MyItems, "MyItems" );

LoadData( MyItemsToPost, "MyItemsToPost", true );

--------------------------------------------------------------------------

Timer - On Timer End property

If( Connection.Connected,
    ForAll(
        MyItemsToPost,
        If(
            ThisRecord.FormModeValueIs = "New",
            Patch(
                'Spill Reporting',
                Defaults('Spill Reporting'),
                {
                    Division: ThisRecord.Division,
                    District: ThisRecord.District,
                    Facility: ThisRecord.Facility,
                    State: ThisRecord.State,
                    County: ThisRecord.County,
                    'Date/Time of Discovery': ThisRecord.'Date/Time of Discovery',
                    'Date/Time Reported to HSE': ThisRecord.'Date/Time Reported to HSE',
                    Pipeline: ThisRecord.Pipeline,
                    'Quantity of Release': ThisRecord.'Quantity of Release',
                    'Short Description of Release ': ThisRecord.'Short Description of Release ',
                    'Latitude/Longitude': ThisRecord.'Latitude/Longitude',
                    'NRC Reportable': ThisRecord.'NRC Reportable',
                    'NRC Reportable justification statement': ThisRecord.'NRC Reportable justification statement',
                    'T-State Reportable': ThisRecord.'T-State Reportable',
                    'T-State Justification': ThisRecord.'T-State Justification',
                    'PHMSA 30-Day Reportable': ThisRecord.'PHMSA 30-Day Reportable',
                    'PHMSA 30-Day reportable justification statement)': ThisRecord.'PHMSA 30-Day reportable justification statement)',
                    'State Reportable': ThisRecord.'State Reportable',
                    'State Reportable justification statement': ThisRecord.'State Reportable justification statement'
                }
            );
            Notify("Offline item Saved Successfully",Success,2000);
        );
        If(
            ThisRecord.FormModeValueIs = "Edit",
            Patch(
                'Spill Reporting',
                LookUp(
                    'Spill Reporting',
                    ID = Gallery1.Selected.ID
                ),
                {
                    Division: ThisRecord.Division,
                    District: ThisRecord.District,
                    Facility: ThisRecord.Facility,
                    State: ThisRecord.State,
                    County: ThisRecord.County,
                    'Date/Time of Discovery': ThisRecord.'Date/Time of Discovery',
                    'Date/Time Reported to HSE': ThisRecord.'Date/Time Reported to HSE',
                    Pipeline: ThisRecord.Pipeline,
                    'Quantity of Release': ThisRecord.'Quantity of Release',
                    'Short Description of Release ': ThisRecord.'Short Description of Release ',
                    'Latitude/Longitude': ThisRecord.'Latitude/Longitude',
                    'NRC Reportable': ThisRecord.'NRC Reportable',
                    'NRC Reportable justification statement': ThisRecord.'NRC Reportable justification statement',
                    'T-State Reportable': ThisRecord.'T-State Reportable',
                    'T-State Justification': ThisRecord.'T-State Justification',
                    'PHMSA 30-Day Reportable': ThisRecord.'PHMSA 30-Day Reportable',
                    'PHMSA 30-Day reportable justification statement)': ThisRecord.'PHMSA 30-Day reportable justification statement)',
                    'State Reportable': ThisRecord.'State Reportable',
                    'State Reportable justification statement': ThisRecord.'State Reportable justification statement'
                }
            );
            Notify(
                "Updated the Item ID " & Gallery1.Selected.ID & " Successfully",
                Success,
                3000
            );
        );
    );
    Clear(MyItemsToPost );
    SaveData(MyItemsToPost,"MyItemsToPost");
    ClearCollect(
        MyItems,'Spill Reporting'
    );
    SaveData( MyItems, "MyItems" );
    Set(
        ResetNewForm,
        true
    );
)
----------------------------------------------------------------------------

Comments

Popular posts from this blog

Powerapps overcome 2000 item limit from any datasource

First go through delegation concept https://tejasadventure.blogspot.com/2020/05/power-apps-understanding.html In powerapps, we observe by default 500 item limit has set with in the app level for any data source. In order to overcome, we have option to set the limit of 2000 item limit maximum in the app. Now using code, MaximoFacility is my data source name contains 3000 items. ColFacilityDropdown is the collection storing the count of items from data source. We expect to see more than 2000 items. Based on StartWith function filtering the data with respective to the charectors and numbers as mentioned below. Code: Place the below code in a button on select property. Add label with code CountRows(ColFacilityDropdown) ClearCollect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "A" ))); Collect(ColFacilityDropdown,Filter(Filter(MaximoFacility, Status = "ACTIVE"), StartsWith( Title, "B" ))); Collect(ColFacilit...

PowerApps multiselect cascading dropdown and save an item to SharePoint List

 I have one scenario as below List 1: Division List has title field List 2: District List has Title and Division Field(LookUp from Division List) List 3: Facility List has Title, District Field(LookUp field from District List) List 4: County List has Title, Facility Field(LookUp field from Facility List) Main List: Spill Report is the main list  Division Field( Look up from Division List) District Field(Look up field from District List) Facility Field(Look up field from Facility List) County Field(Look up field from County List) List Screenshots provided below can be refered for clarification. ----------------------------------------------------------------------------------------------------- PowerApps Canvas Apps In Power Apps Canvas App, We need to first design the app with the 4 respective fields Since those fields are multiselect, then it is to combo box. Generally power apps are not supported for multiselect cascasding dropdown. Refere microsoft documentation, Know Limit...

Creating SharePoint List with columns and content types using Power Automate Flow

 Rest API Uri: https://gitbrent.github.io/SpRestLib/blog/2018/04/20/create-sharepoint-list-columns-using-rest.html Create SharePoint List: site address: Enter URL method: Post URi: /_api/web/lists headers: Accept:application/json;odata=verbose Content-Type:application/json;odata=verbose Body: {   "__metadata": {"type": "SP.List"},   "AllowContentTypes": true,   "BaseTemplate": 100,  "Description": "Admin configuration list",  "Title": "AdminConfigList" } -------------------------------------------------------------------------------------- Multi line text field: create a multiline text column: Site URL: Target Site URi: _api/lists/getbytitle('CI_CompanyNews')/fields Type: POST Body: {     '__metadata': {'type':'SP.Field', 'addToDefaultView': 'true' },     'FieldTypeKind': 3,     'Title': 'Blurb' } Headers:  Accept:application/...