Hi Team,
I think now is the time to gives us more option or flexibility to play with database objects at entity level like ..Trigger(Most desire option),Entity cleanup etc.
Thanks!
Hi Team,
I think now is the time to gives us more option or flexibility to play with database objects at entity level like ..Trigger(Most desire option),Entity cleanup etc.
Thanks!
Problem: Outsystems is an Integration platform. We assemble different systems into one solution. We work with different data sources: DBs, SOAP, REST. Some entities and structures have similar fields sets: fields are either the same or have similar names. In the attachment there is 50 fields assignment.
Solution: automated mapping tool in assignments. 1 structure/entity from 1 module mapped to 2nd structure/entity. If fields has same type and name - they are mapped automatically. If names are similar like "StatusFinancial <---> status__c" the mapping rule is created.
This will decrease development time and will provide our developers are powerful integration tool. And reduce the numbers of bugs when some fields were forgotten in the massive assignment.
Origin of the approach: Microsoft .Net. They use automated mapping tools for years. And this really decreases development time - just believe my 7 years experience. Let's "steal" this technology :)
Please more completely associate available aggregate functions in Group By Aggregates. For example, MAX() is an available aggregate function to be used on text/varchar fields in SQL Server, but is not an option in the Aggregate editor on Text columns.
Additionally, please add all the options for aggregates, including MAX, VAR, COUNT DISTINCT, etc as indicated here:
I understand the desire to limit options that could cause an error. For example, if we chose AVG on a text field, we'd get "Operand data type nvarchar is invalid for avg operator." And that's OK. That's definitely MORE ok, than requiring us to go into an advanced SQL to get an AVG(). That's way more work and prone to error and increased maintenance if we change the data model.
For more see the original post regarding this issue:
There are cases in which it can be complicated to develop deletion logic for entities due to a complex network of foreign key references. It would be easier to write logic to delete entities if you could easily see a tree in which leaf nodes are the bottom level of the dependency tree and the root being the entity you would like to delete. Otherwise you need to manually poke around an entity diagram until you can figure this out.
Alternative idea: "Generate Delete Action" from the right-click menu of an entity.
Hi everyone,
Many times Outsystems come to take place from older software solutions. Many times that solutions are made in Microsoft Access or the data that we need to bootstrap are in .dbf files.
I think, if we already have connectors/actions (like bootstrap directly from Excel files) to do that we can win a lot of time in the process.
I had a particular case (one app that need to consume shape files from AutoCad Map that are .dbf) and everytime that the user needs to submit a new shape file he need to open it in Excel to save it like .xls or .xlsx.
I know that .dbf and Access files are something from the past, but, we need to deal with that when we develop something to override that technology.
Best regards,
Ricardo Pereira
Many times i just want to filter and view some data in an entity.
But OutSystems will then flag the module as edited, although nothing has changed in the module.
If one doesn't pay attention to it, you start doubting if you changed something or not.
It would be better to not set the module to 'changed' in this use case.
Would be nice if Extensions in the forge could be added to a outsystems managed github repository.
Additions, improvements etc. can then be pushed and reviewed before being implemented. Now, someone is either a team member with all the the needed privilidges or nothing at leaving it up to the project team to implement / build requirements for the community.
Dear Uday,
Yes, you can. Please refer to the below documentation for more details.
Hope this will assist you in clearing all your queries
Thanks
Happy new year.
Mohamed.
Marco Arede wrote:
Hi Manthan Shah,
Did you try to publish the full solution and try again? Sometimes the ViewState cached objects are incompatible between server and browser.Hope it helps.
Regards,
Full solution publish means what?
and I did republish the application from service studio but the same problem
Regards,
Manthan Shah.
How many times did you had a strange behavior in ServiceStudio that you think... How can I explain this in a way that Outsystems will understand...
If we simply record the behavior and upload it, it would help way more Outsystems to really understand what's going on.
Hi,
How to give a place holder in dropdown/select from OutsystemsUIWeb.
Please see the following link :
https://www.outsystems.com/outsystems-ui/patterns/web/DropdownSelect
Just as there is a 'primary' Place Holder in the combo box above.
I also tried the following code in Advanced Format of DropDownSelec as seen in the following screenshott:
Please help.
Regards,
Manthan Shah.
You can do all the gets in preparation with a join. As long as you just use the two-attributes structure in the save action, the data transferred is minimal.
The alternative would be an ajax action on each click that saves into a temp table one by one and later the save action only moves between tables. But that is not ideal for those "Select All" button everyone loves to have, because you need to have the exact same list of entries and if the table in DB doesnt match the one read in preparation into the screen, it will be an issue.
Nuno Reis wrote:
They would probably ask for the espace because all situations are different.
Best practices are called "best" and not "unique" because they are advisable, but sometimes you have to think outside the box. I would do re-querying for 1) avoid keeping too many data in memory; 2) ensure I'm not saving to DB the data some user tampered in the screen.
In your situation, sending 100 full records is not nice. I' say the best is to have a simple structure with (RecordId,IsPayed) and ideally you only send the ones with True.
Nuno - I agree that all situations are unique but some questions like this are generalized enough that they should be able to just be answered - as you did! So here is my question based on your answer. Lets say I have an aggregate that is on bill line items. So it has an id, a date, an amount and say 200 characters of text for charge description. So lets say in the page I have local variable MyRecords list which is type list of record, and in the record section I just have BillId and IsPayed. In the prep I run an aggregate to get the list of records and then do a list append all from the aggregate to MyRecords where I am just bringing over the BillId and set IsPayed to false. On the page I would then have a table called MyTable pointing to MyRecords. However here for all the other fields (amount and description) I would have to do gets on the BillId (something like getBillLineItem(MyTable.list.current.BillId).BillLineItem.Amount) to show the amount of the charge and the text. Wouldn't that slow it down? The reason I say this is that as soon as I call an action based on that data I would have to already have the user change "IsPayed" on MyRecords, not the original aggregate list correct? I guess what I am asking is from your answer is this how you would implement it such that when you call the action to get which ones they have checked in the table, you pass it as small a list of data as possible.
They would probably ask for the espace because all situations are different.
Best practices are called "best" and not "unique" because they are advisable, but sometimes you have to think outside the box. I would do re-querying for 1) avoid keeping too many data in memory; 2) ensure I'm not saving to DB the data some user tampered in the screen.
In your situation, sending 100 full records is not nice. I' say the best is to have a simple structure with (RecordId,IsPayed) and ideally you only send the ones with True.
I have been looking through the OutSystems best practices, specifically not using prep data in screen actions. I can understand re-running an aggregate to get data that you then use in the screen action but I want to confirm what is the best practice suggestions for cases such as editing a record (I would assume you have to use the form record) or what if I have a table, populated by data from the prep, that has calculated fields where the user is putting in information and then I want to do something based on that information? For example lets say I have a table of 100 records from the prep aggregate that I added a boolean calculated field called "pay". Then in my screen action I want to go through the table record and any records that they user checked the "pay" field on a table, those get added to a local list and then I move to the payment screen. Under the best practices it would not be good as I would need to pass that whole list from the client to the server however, the database doesn't have which records the user selected to pay.
I would send this to success at OutSystems but have had several bad experiences there and I am sure the first thing they would ask would be to send in my espace vs just answering the question.
Hi Guys,
I was looking for someone to point me in the right direction, I am trying to create filters in a sidebar for different attributes of a vehicle. I had started to use check boxes in order to filter data but that seemed to be to cumbersome. I was thinking if I could use links and pass a value to filter by I could do it that way but I'm unsure if I can stack filters on top of each other. The final goal is to get something like you would see on Amazon or any shopping website. If someone could let me know if this is even possible and maybe point me in a direction where i can learn how to implement this feature.
Amal Raj wrote:
Do you mean how to keep an application from Enterprise to a Personal Environment ?
If yes, this is not possible as IPP does not allow Enterprise to Personal.
The only way is to take out the code and deploy it manually onto standard stack (IIS etc)
Hi Raj ,
Happy new year !
No,I mean how to take out the Code to IiS.
I want to have the guide.
Br,
Jack