ERPNext Conference 2019* ERPNext.com Blog

Frappe Core DocTypes can't be customized in Version 11

erpnext-version-11

#21

SAP’s practice is to strictly control the modification to standard feature/code, on code level enhancement via user exit( the hooks in ERPNext), on user interface level via transaction variant or field status configuration settings.

if it is really needed to change the standard code, it is possible to apply a developer access code, with this developer access code registered in the system, it is possible to change the code!


#22

…but you already have restrictions on the standard fields which users cannot edit or even re-arrange without being in developer mode. Why restrict custom fields? Is restricting creativity really the way to go?

Kind regards,


#24

If we need to associate other information with user accounts, is there another approach you would suggest? If we need users to have an “Employee ID number”, for example, is there a way to do that without, as you say, shooting ourselves in the foot?


#25

@peterg

try this custom script:

function ID () {
var Employee ID number = “”
frappe.call({
method: “frappe.client.get_value”,
args: {
doctype: “Employee”,
fieldname: “Employee ID number”,
filters: {
user_id: frappe.session.user
}
},
async: false,
callback: function® {
Employee ID number = r.message.Employee ID number
}
})
return company
}


#26

Thanks Eli,

It’s a handy workaround, but mostly I’m trying to understand the change.

Are more documents likely to become “core” in the future? Custom fields had been working great for us, because they allowed us to integrate with other systems effectively without needing to make unsustainable customizations to code.

From the mixed messages in this thread, it’s not clear to me whether custom fields are still a recommended approach.


#27

@peterg

I think core documents are quite limited . The list will not grow exponentially. To get an idea of what they mean by core documents, simply install the frappe framework and DON’T install the ERPNext app. Login to the system and you’ll see what they mean by core documents.

Custom fields are without a doubt handy and are in no way going away soon. Custom fields and custom docs are the essence of an agile solution.

I understand it can be annoying when something is changed, but I’m pretty confident the Frappe team have got their valid reasons for tweaking the system.


#28

Hi @lasalesi , may I ask you about the procedure you followed to resolve the issue using fixtures of a custom app, because I’m having a similar problem.

Thanks


#29

Hi @youssef,

sure, I used a custom app with fixtures enabled: in your hooks.py file, add “Custom Fields”

fixtures = ["Custom Field"]

Then, run

$ bench --site mysite export-fixtures

This will create the base fixture file. You can effectively remove the content. What I did was copy one variable section and manually entered the definition for my core doctype field:

{
  "allow_on_submit": 0,
  "bold": 0,
  "collapsible": 0,
  "collapsible_depends_on": null,
  "columns": 0,
  "default": null,
  "depends_on": null,
  "description": null,
  "docstatus": 0,
  "doctype": "Custom Field",
  "dt": "User",
  "fetch_from": null,
  "fieldname": "section_signature_cost_center",
  "fieldtype": "Section Break",
  "hidden": 0,
  "ignore_user_permissions": 0,
  "ignore_xss_filter": 0,
  "in_global_search": 0,
  "in_list_view": 0,
  "in_standard_filter": 0,
  "insert_after": "mute_sounds",
  "label": "Signature and Cost Center",
  "modified": "2019-03-06 21:52:14.685977",
  "name": "User-section_signature_cost_center",
  "no_copy": 0,
  "options": "",
  "permlevel": 0,
  "precision": "",
  "print_hide": 0,
  "print_hide_if_no_value": 0,
  "print_width": null,
  "read_only": 0,
  "report_hide": 0,
  "reqd": 0,
  "search_index": 0,
  "translatable": 0,
  "unique": 0,
  "width": null
 },

I then saved the fixture file, checked in the changes and ran

$ bench migrate

This will load the changes in the database and you will have your customisation of a core doctype. Hope this helps.


#30

Thank you, it was very helpful .